由中根序列和后根序列重建二叉树
来源:互联网 发布:京东金融 免费数据 编辑:程序博客网 时间:2024/06/03 22:01
4:由中根序列和后根序列重建二叉树
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 500ms
- 内存限制:
- 65535kB
- 描述
我们知道如何按照三种深度优先次序来周游一棵二叉树,来得到中根序列、前根序列和后根序列。反过来,如果给定二叉树的中根序列和后根序列,或者给定中根序列和前根序列,可以重建一二叉树。本题输入一棵二叉树的中根序列和后根序列,要求在内存中重建二叉树,最后输出这棵二叉树的前根序列。
用不同的整数来唯一标识二叉树的每一个结点,下面的二叉树
中根序列是9 5 32 67
后根序列9 32 67 5
前根序列5 9 67 32
- 输入
- 两行。第一行是二叉树的中根序列,第二行是后根序列。每个数字表示的结点之间用空格隔开。结点数字范围0~65535。暂不必考虑不合理的输入数据。
- 输出
- 一行。由输入中的中根序列和后根序列重建的二叉树的前根序列。每个数字表示的结点之间用空格隔开。
- 样例输入
9 5 32 679 32 67 5
- 样例输出
5 9 67 32
#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<iomanip>#include<queue>#include<stack>#include<vector>#include<set>#include<map>using namespace std;int Mid[10005];int Last[1005];struct Node{int x;Node*left;Node*right;Node(){x=0;left=NULL;right=NULL;}};Node*root;Node*Build(int s1,int e1,int s2,int e2){Node*p=new Node();if(s1==e1){p->x=Mid[s1];return p;}int t;for(t=s1;t<=e1;++t){if(Mid[t]==Last[e2])break;}p->x=Mid[t];if(t==s1){p->right=Build(s1+1,e1,s2,e2-1);}else if(t==e1){p->left=Build(s1,e1-1,s2,e2-1);}else{p->left=Build(s1,t-1,s2,t-1-s1+s2);p->right=Build(t+1,e1,t+2-e1-e2 ,e2-1);}return p;}void Pre(Node*p){if(p==NULL)return;cout<<p->x<<" ";Pre(p->left);Pre(p->right);}int main(){int a,num1=0,num2=0;char c;while(cin>>a) {Mid[num1++]=a;c=getchar();if(c=='\n') break;}while(cin>>a){Last[num2++]=a;c=getchar();if(c=='\n') break;}root=Build(0,num1-1,0,num2-1);Pre(root);return 0;}
阅读全文
0 0
- 由中根序列和后根序列重建二叉树
- 由中根序列和后根序列重建二叉树
- 由中根序列和后根序列重建二叉树
- 由中根序列和后根序列重建二叉树
- 【Openjudge】由中根序列和后根序列重建二叉树
- 二叉树基础-由中根序列和后根序列重建二叉树(数据结构基础 第5周)
- 利用中根序列和后根序列重建二叉树
- 数据结构与算法B代码编写作业,由中根序列和后根序列重建二叉树,解题报告&AC代码
- Java实现由前序序列和中序序列重建二叉树,并后序输出。
- 树——由中序和前序,中序和后序序列重建二叉树
- 由前序遍历序列和中序遍历序列重建二叉树
- 由先序序列/后序序列和中序序列构造二叉树
- 由二叉树的后序序列和中序序列构成二叉树
- 剑指offer-重建二叉树 由前序和中序遍历序列建树
- 由中序序列和后序序列唯一确定一棵二叉树
- 由中序遍历序列和后序遍历序列构造二叉树(递归实现)
- 由中序序列和后序序列唯一确定一棵二叉树
- 中/后序遍历序列重建二叉树
- JAVA线程状态及切换
- 统计数据库中各用户的数据条数
- HTML
- windows和linux环境下使用google的glog日志库
- 我的第一个JAVA程序
- 由中根序列和后根序列重建二叉树
- php $_SERVER
- python如何实现对文件结束符(EOF)的判断
- Java的按值传递和引用传递
- 学习mysql
- 统计数据库中业务表的数目和记录总数
- myibatis 一对多配置
- Windows应用商店下载安装Ubuntu
- HDU 4160 Dolls(DAG最小路径覆盖)