给出一个棵二叉树的后序遍历和中序遍历,求二叉树的层序遍历

#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 ;
}

最新文章

  1. JSP 标准标签库(JSTL)
  2. placeholder js简单实现
  3. Sigmaplot 13 破解版什么地方可以下载
  4. Eclipse for j2ee 无法调式问题
  5. paip.提升性能--多核cpu中的java/.net/php/c++编程
  6. AngularJS进阶学习
  7. photoshop菜单显示不全的解决方法
  8. android 电话拨号器
  9. [Gauss]POJ2947 Widget Factory
  10. Mysql导入zabbix的sql语句时报错:ERROR 1045 (28000)
  11. [sklearn]官方例程-Imputing missing values before building an estimator 随机填充缺失值
  12. SoupUI安装
  13. ACM之路——上车了
  14. webpack打包生成多个vendor的配置方法
  15. 2017-2018-2 1723《程序设计与数据结构》第八周作业 &amp; 实验二 &amp; 第一周结对编程 总结
  16. 伪静态与重定向--RewriteRule
  17. node.js 初学(二)—— 搭建注册/登录服务器
  18. spark使用正则表达式读入多个文件
  19. 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致
  20. 委托事件和jquery中的delegate方法

热门文章

  1. CentOS 5 - 安装PHP MongoDB扩展
  2. 2018.8.5 Bootstrap 使用
  3. 20145238-荆玉茗 《Java程序设计》第6周学习总结
  4. cudpp库的编译和使用
  5. 旧文备份:在CANopen网络中通过LSS服务设置节点地址和网络波特率
  6. ethereum(以太坊)(十三)--异常处理/元祖
  7. 10.2 DOM 操作技术【JavaScript高级程序设计第三版】
  8. java中的构造方法(2013-05-05-bd 写的日志迁移
  9. java多线程批量读取文件( 八)--读写分离
  10. lan口和wan口的配置