1020. Tree Traversals (25)_2018_3_24
2018-03-24 17:14
375 查看
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 7Sample Output:
4 1 6 3 5 7 2提交代码#include<bits/stdc++.h>
using namespace std;
const int N(35);
int a
,b
;
int cnt;
struct AA{
int a;
int val;
AA(){}
AA(int aa,int vv):a(aa),val(vv){}
};
AA ans
;
int cmp(AA a,AA b){
return a.val<b.val;
}
void solve(int la,int ra,int lb,int rb,int w){
if(la>ra)return;
if(la==ra){
ans[cnt++]=AA(a[ra],w);
return;
}
ans[cnt++]=AA(a[ra],w);
int i=lb;
for(;i<=rb;i++)
if(a[ra]==b[i])break;
solve(la,la+i-lb-1,lb,i-1,w+1);
solve(la+i-lb,ra-1,i+1,rb,w+1);
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=0;i<n;i++)
scanf("%d",&b[i]);
cnt=0;
solve(0,n-1,0,n,0);
stable_sort(ans,ans+cnt,cmp);
for(int i=0;i<cnt;i++)
if(i==0)printf("%d",ans[i].a);
else printf(" %d",ans[i].a);
}
相关文章推荐
- 1085. PAT单位排行 (25)+2018_3_24
- Knightmare _打表_数学_2018_2_24
- Fedora24 升级到25
- 希伯特19+9步行者1-0热火 乔治24+7詹皇25+10+5
- 剑指Offer面试题24二叉搜索树的后序遍历序列(递归),面试题25二叉树中和为某一值的路径(栈)
- 在Fedora24/25中轻松安装gcc 4.9
- The SDK platform-tools version(24) is too old to check APIs compiled with API 25
- Best Cow Line_字符串_2018_2_24
- web前端学习 11/24-25
- effective C++笔记之条款24、25:在函数重载和设定参数缺省值间慎重选择、避免指针和数字类型重载
- 2018_1_25_What Day Is It_公式
- 2018 . 3 .24 大小写转换
- 《java.util.concurrent 包源码阅读》25 Fork/Join框架之Fork与Work-Stealing(重写23,24)
- (23)函数概念 (24)函数定义格式和命名规范 (25) 函数执行与返回流程 (26)函数传参方式
- 24、25_保存文件到手机内存
- 23、24、25、26股票涨跌功能,JSON格式、红绿色实时显示股票价格的、ToolTip提示框
- 7-24 树种统计(25 分)
- C语言提高-第23/24/25讲: 指针的运算/数组名作为函数参数/指针作函数参数(一维数组Vs指针)
- 22-(集合框架-TreeSet集合) 1 2 23-(集合框架-TreeSet集合-Comparator比较器) 24(集合框架-TreeSet集合 25 -字符串长度排xu
- 如果你也24 25 26岁……