1020 Tree Traversals (25 分)(二叉树的遍历)
2024-09-05 08:12:09
给出一个棵二叉树的后序遍历和中序遍历,求二叉树的层序遍历
#include<bits/stdc++.h> using namespace std;
const int N=;
int in[N];
int post[N]; typedef struct node;
typedef node *tree;
struct node
{
int data;
tree L;
tree R;
};
void print(tree &bt,int l1,int r1,int l2,int r2)
{
if(l1>r1||l2>r2) return;
int mid=l2;
while(in[mid]!=post[r1]) mid++;
bt=new node;
bt->data=post[r1];
bt->L=NULL;
bt->R=NULL;
print(bt->L,l1,l1+mid-l2-,l2,mid-);
print(bt->R,l1+mid-l2,r1-,mid+,r2);
}
vector<int>p;
void s(tree bt)
{
queue<tree>Q;
Q.push(bt);
while(!Q.empty()){
tree u=Q.front();
Q.pop();
p.push_back(u->data);
if(u->L) Q.push(u->L);
if(u->R) Q.push(u->R);
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%d",&post[i]);
for(int i=;i<n;i++) scanf("%d",&in[i]);
tree bt;
print(bt,,n-,,n-);
s(bt);
for(int i=;i<p.size();i++){
if(i) printf(" ");
printf("%d",p[i]);
}
printf("\n");
return ;
}
最新文章
- JSP 标准标签库(JSTL)
- placeholder js简单实现
- Sigmaplot 13 破解版什么地方可以下载
- Eclipse for j2ee 无法调式问题
- paip.提升性能--多核cpu中的java/.net/php/c++编程
- AngularJS进阶学习
- photoshop菜单显示不全的解决方法
- android 电话拨号器
- [Gauss]POJ2947 Widget Factory
- Mysql导入zabbix的sql语句时报错:ERROR 1045 (28000)
- [sklearn]官方例程-Imputing missing values before building an estimator 随机填充缺失值
- SoupUI安装
- ACM之路——上车了
- webpack打包生成多个vendor的配置方法
- 2017-2018-2 1723《程序设计与数据结构》第八周作业 &; 实验二 &; 第一周结对编程 总结
- 伪静态与重定向--RewriteRule
- node.js 初学(二)—— 搭建注册/登录服务器
- spark使用正则表达式读入多个文件
- 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致
- 委托事件和jquery中的delegate方法
热门文章
- CentOS 5 - 安装PHP MongoDB扩展
- 2018.8.5 Bootstrap 使用
- 20145238-荆玉茗 《Java程序设计》第6周学习总结
- cudpp库的编译和使用
- 旧文备份:在CANopen网络中通过LSS服务设置节点地址和网络波特率
- ethereum(以太坊)(十三)--异常处理/元祖
- 10.2 DOM 操作技术【JavaScript高级程序设计第三版】
- java中的构造方法(2013-05-05-bd 写的日志迁移
- java多线程批量读取文件( 八)--读写分离
- lan口和wan口的配置