博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT 甲级 1020 Tree Traversals (二叉树遍历)
阅读量:4693 次
发布时间:2019-06-09

本文共 2036 字,大约阅读时间需要 6 分钟。

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:
72 3 1 5 7 6 41 2 3 4 5 6 7
Sample Output:

4 1 6 3 5 7 2

根据后续遍历和中序遍历,求二叉树

#include 
#include
#include
#include
#include
#include
#include
using namespace std;typedef struct Tree{ int data; Tree *lchild; Tree *rchild;}a[40];int post[40];int in[40];int n;int ans[40];void dfs(int l1,int r1,int l2,int r2,Tree* &root){ root=new Tree(); int i; for( i=l1;i<=r1;i++) if(in[i]==post[r2]) break; root->data=post[r2]; if(i==l1) root->lchild=NULL; else dfs(l1,i-1,l2,l2+i-l1-1,root->lchild); if(i==r1) root->rchild=NULL; else dfs(i+1,r1,r2-(r1-i),r2-1,root->rchild);}int cnt;void bfs(Tree *tree){ queue
q; q.push(tree); while(!q.empty()) { Tree *root=q.front(); q.pop(); ans[cnt++]=root->data; if(root->lchild!=NULL) q.push(root->lchild); if(root->rchild!=NULL) q.push(root->rchild); }}int main(){ while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&post[i]); for(int i=1;i<=n;i++) scanf("%d",&in[i]); Tree *tree; dfs(1,n,1,n,tree); cnt=0; bfs(tree); for(int i=0;i

转载于:https://www.cnblogs.com/dacc123/p/8228608.html

你可能感兴趣的文章
装饰器、迭代器、生成器
查看>>
对闭包的一点小认识
查看>>
四则运算.结对编程
查看>>
javascript字符串加密解密函数
查看>>
VBS读取txt文档数据查找Excel中单元格数据符合条件的剪切到工作表2中
查看>>
如何利用php+android+新浪sae服务器做一个app下载应用
查看>>
java怎么处理json数据
查看>>
每日站立会议4-19
查看>>
2018年11月21日 元祖
查看>>
iOS文件和文件夹的创建,删除,移动, 拷贝,是否存在及简单数据类型的读写
查看>>
8080端口被占用
查看>>
iOS开发--地图与定位
查看>>
Ubuntu下添加开机启动项的2种方法
查看>>
学密码学一定得学程序(SDUT 2463)
查看>>
java:jsp: 一个简单的自定义标签 tld
查看>>
position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
查看>>
food(洛谷P4040 [AHOI2014/JSOI2014]宅男计划)
查看>>
SIM卡(EF)基本文件内容
查看>>
深入剖析PE文件
查看>>
生产者/消费者问题的多种Java实现方式
查看>>