PAT A1127 ZigZagging on a Tree (30分) (不建树)
条评论PAT甲级:A1127 ZigZagging on a Tree (30分)
Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traversal sequences. And it is a simple standard routine to print the numbers in level-order. However, if you think the problem is too simple, then you are too naive. This time you are supposed to print the numbers in “zigzagging order” – that is, starting from the root, print the numbers level-by-level, alternating between left to right and right to left. For example, for the following tree you must output: 1 11 5 8 17 12 20 15.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤30), the total number of nodes in the binary tree. The second line gives the inorder sequence and the third line gives the postorder sequence. All the numbers in a line are separated by a space.
Output Specification:
For each test case, print the zigzagging sequence of the tree in a line. All the numbers in a line must be separated by exactly one space, and there must be no extra space at the end of the line.
Sample Input:
1 | 8 |
Sample Output:
1 | 1 11 5 8 17 12 20 15 |
- 题意:给一个二叉树的后序和中序遍历序列,要求输出这棵树的 “Z” 字形遍历序列。
- 分析:这题不需要建树,只用在二叉树中后序序列建树方法的基础上加上
depth
参数用以记录深度即可,然后通过vector
数组依次记录每一层的结点,因为无论前中后遍历二叉树的访问序列都是从上至下从左至右,所以push进vector[层数]
同样是按照同一层结点间的顺序的,因此该方式可行,同时在建树方法中记录下出现的最大层数。为了方便记录(其实也差不多),第一层的depth被记为0。
1 |
|
- 本文链接:https://blog.charjin.top/2020/02/25/pat-A1127/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
分享