HDU 1710 Binary Tree Traversals(二叉树)
来源:互联网 发布:ctp数据 编辑:程序博客网 时间:2024/05/17 22:55
题目链接:HDU 1710(点击进入)
直接贴代码:
//time:2016/8/4 #include<iostream>using namespace std;void build_tree(int n,int *a,int *b,int *c){ int *p=b; if(n<=0) return; else while(1){ if(a[0]==*p) break; else p++; } //关键代码,和二叉树后序遍历思维差不多,可以在脑中想想 //后面两段代码不断将二叉树切割成左右子树 //当一个节点没有左右子树时读取它(可获得后序遍历序列,因为先读取左子树->右子树) //读完后递归返回上一层(某以子树根节点),并读取它 int tt=p-b;//某一子树的左子树节点数 build_tree(tt,a+1,b,c);//左子树 build_tree(n-tt-1,a+tt+1,b+tt+1,c+tt);//右子树,至于c+tt参数为:在本层递归调用的子树中,一共有n个节点,其中tt个节点为左子树,需要占用前tt个空间保存 c[n-1]=a[0];}int main(){ int a[1000],b[1000],c[1000]; int n,i,j; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) scanf("%d",&b[i]); build_tree(n,a,b,c); for(i=0;i<n-1;i++){ printf("%d",c[i]); printf(" "); } printf("%d",c[i]); printf("\n"); }}
0 0
- HDU 1710 Binary Tree Traversals 二叉树
- HDU 1710 Binary Tree Traversals(二叉树)
- HDU 1701 Binary Tree Traversals 【二叉树】
- 重建二叉树 Binary Tree Traversals HDU
- hdu 1710 binary tree traversals 二叉树遍历
- 二叉树 遍历 hdu-1710-Binary Tree Traversals
- HDU-1710 Binary Tree Traversals 二叉树遍历
- HDU 1710 Binary Tree Traversals(二叉树)
- HDU 1710-Binary Tree Traversals(重建二叉树)
- hdu 1710 Binary Tree Traversals 二叉树的遍历
- HDU 1710(Binary Tree Traversals)二叉树的遍历
- HDU---1710-Binary Tree Traversals (二叉树遍历)
- hdu 1710 Binary Tree Traversals(二叉树排序)
- HDU 1710 Binary Tree Traversals (二叉树遍历)
- (遍历二叉树)HDU 1710 Binary Tree Traversals
- hdu 1710 Binary Tree Traversals(二叉树:前中求后)
- HDU--1710--Binary Tree Traversals(二叉树遍历)
- HDU Binary Tree Traversals(二叉树重建+dfs)
- uva12265 抓关键 矩形利用对角两点
- Android Studio在命令行运行Gradle
- java 掩码 iP与位数的转化
- 在中断中软件模拟PWN
- node服务器中打开html文件的两种方法
- HDU 1710 Binary Tree Traversals(二叉树)
- 最短路径学习总结
- Android线程学习笔记
- usb驱动开发
- VS2015使用Sublime Text字体主题
- ecshop在商品列表页里面写入属性值,和排序
- 187 git stash
- 基于Unity的VR全景视频(一)
- java HashMap 基本用法