pat 1020. Tree Traversals (25)

    xiaoxiao2021-03-25  49

    1020. Tree Traversals (25)

    时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue

    Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree.

    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 postorder sequence and the third line gives the inorder sequence. All the numbers in a line are separated by a space.

    Output Specification:

    For each test case, print in one line the level order traversal sequence of the corresponding binary tree. 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: 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7 Sample Output: 4 1 6 3 5 7 2

    #include <cstdio> #include <queue> #include <cstring> using namespace std; #define ms(x,y) memset(x,y,sizeof(x)) #define rep(i,j,k) for(i=j;i<=k;i++) #define inone(i) scanf("%d",&i) const int maxn = 30 + 10; int v[maxn], l[maxn], r[maxn], n, pst[maxn], ino[maxn], tot, flag; void build(int &root, int pl, int pr, int il, int ir) { if (pl > pr || il > ir) return; int i; root = tot++; v[root] = pst[pr]; rep(i, il, ir) if (ino[i] == pst[pr]) break; build(l[root], pl, pl + i - il - 1, il, i-1); build(r[root], pl + i - il, pr-1, i + 1, ir); } void levelT(int root) { queue<int> q; q.push(root); while (!q.empty()) { int nd = q.front(); q.pop(); printf("%s%d", flag ? " " : "", v[nd]); flag = 1; if (l[nd] != -1) q.push(l[nd]); if (r[nd] != -1) q.push(r[nd]); } puts(""); } int main() { inone(n); int i, root; rep(i, 1, n) inone(pst[i]); rep(i, 1, n) inone(ino[i]); ms(l, -1); ms(r, -1); build(root, 1, n, 1, n); levelT(root); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-32901.html

    最新回复(0)