二叉树遍历(已知中序、先序求后序)
来源:互联网 发布:淘宝店铺名可以修改吗 编辑:程序博客网 时间:2024/06/04 23:24
二叉树的遍历
Time Limit: 1000ms
Memory Limit: 32768KB
This problem will be judged on HRBUST. Original ID: 204064-bit integer IO format: %lld Java class name: Main
Prev
Submit Status Statistics Discuss
Next给出一棵二叉树的中序和前序遍历,输出它的后序遍历。
Input
本题有多组数据,输入处理到文件结束。
每组数据的第一行包括一个整数n,表示这棵二叉树一共有n个节点。
接下来的一行每行包括n个整数,表示这棵树的中序遍历。
接下来的一行每行包括n个整数,表示这棵树的前序遍历。
3<= n <= 100
Output
每组输出包括一行,表示这棵树的后序遍历。
Sample Input
7
4 2 5 1 6 3 7
4 2 5 1 6 3 7
1 2 4 5 3 6 7
Sample Output
4 5 2 6 7 3 1
Source
2014 Winter Holiday Contest 5
Author
TwIStOy
Prev
Submit Status Statistics Discuss
NextDistributed under GPLv3. | Project Homepage | Developer: 51isoft crccw | Current Style: Cerulean.
#include<iostream>#include<cstring>using namespace std;int a1[110];int a2[110];int n; int findn(int a){for(int i=0;i<n;i++){if(a2[i]==a) return i;}return -1;//要记得return-1 }void calc(int l1,int r1,int l2,int r2)//返回类型为void { int m=findn(a1[l1]); if(m>l2) calc(l1+1,m-l2+1,l2,m-1); if(m<r2) calc(m-l2+l1+1,r1,m+1,r2); cout<<a1[l1]<<" ";}int main(){//int n;while(scanf("%d",&n)!=EOF){memset(a1,0,sizeof(a1));memset(a2,0,sizeof(a2));for(int i=0;i<n;i++) cin>>a2[i];for(int i=0;i<n;i++) cin>>a1[i];calc(0,n-1,0,n-1);cout<<endl;}return 0;}
阅读全文
0 0
- 二叉树遍历(已知中序、先序求后序)
- 已知二叉树先序和中序遍历,生成二叉树
- 二叉树遍历题解(已知中序,层次遍历,求后序遍历)
- 二叉树之已知前序和中序遍历求后序遍历(POJ &&HDU )
- 建立二叉树(已知中序遍历和先序遍历)
- 二叉树遍历(已知中序和按层遍历求先序 递归)
- 已知二叉树的前序遍历和中序遍历求后序遍历(二叉树)
- 已知二叉树的后序遍历和中序遍历求前序遍历(二叉树)
- 二叉树系列:已知二叉树的中序遍历和前序遍历,求后序遍历
- 已知二叉树先序遍历,中序遍历创建二叉树并输出后序遍历
- 已知二叉树先序遍历中序遍历求其后序遍历、重建二叉树
- 已知二叉树的前序遍历和中序遍历重建二叉树(二叉树)
- 已知二叉树的后序遍历和中序遍历重建二叉树(二叉树)
- 二叉树遍历,已知前序遍历与中序遍历,求后续遍历 使用java(递归方式)实现
- 已知前序和中序遍历恢复二叉树
- 二叉树遍历:已知中序和后序,求前序
- 二叉树遍历:已知前序和中序,求后序
- 已知二叉树前、中序遍历,求…
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- java重定向
- Java获取文件的路径总结
- ActiveMQ 点对点模式
- 《Learning Python》笔记——python介绍
- 二叉树遍历(已知中序、先序求后序)
- SpringMVC一次请求过程
- SPI通信
- [iOS]数字每隔3位用逗号分隔
- PAT-(NATP)
- 我的博客即将同步至“云栖社区”,诚邀技术同仁一起入驻。
- oracle中字符串分解为数组并遍历数组插入表中
- MySql触发器
- 垃圾玩意