数据结构练习题---后序遍历二叉树
来源:互联网 发布:南通seo招聘 编辑:程序博客网 时间:2024/06/02 19:40
描述
给定一颗二叉树,要求输出二叉树的深度以及后序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。
输入
输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0代替)。
输出
输出每棵二叉树的深度以及后序遍历二叉树得到的序列。
样例输入
2
1 -1
1 2 0 3 4 -1
1 -1
1 2 0 3 4 -1
样例输出
1 1
3 3 4 2 1
3 3 4 2 1
#include<iostream>#define MX 1010using namespace std;int a[MX];typedef struct node{ int data; struct node *lchild,*rchild;}node,*Btree;void create(Btree &t,int i){ if(i>a[0]||a[i]==0){t=NULL;return ;} t=new node; t->data=a[i]; create(t->lchild,2*i); create(t->rchild,2*i+1);}void preorder(Btree t){ if(t) { preorder(t->lchild); preorder(t->rchild); cout<<" "<<t->data; }}int depth(Btree t){ int dep=0,depl,depr; if(!t)dep=0; else { depl=depth(t->lchild); depr=depth(t->rchild); dep=1+(depl>depr?depl:depr); } return dep;}int main(){ Btree t; int dep,n,x; cin>>n; while(n--){ a[0]=0; while(cin>>x&&x!=-1)a[++a[0]]=x; create(t,1); dep=depth(t); cout<<dep; preorder(t); cout<<endl; } return 0;}
- 数据结构练习题---后序遍历二叉树
- 数据结构练习题---先序遍历二叉树
- 数据结构练习题---先序遍历二叉树
- 数据结构练习题---先序遍历二叉树
- 数据结构练习题——先序遍历二叉树
- 【数据结构】二叉树的后序遍历
- 【数据结构基础】非递归后序遍历二叉树
- 数据结构-非递归实现后序遍历二叉树
- 数据结构--二叉树的遍历--复制二叉树(后序遍历)
- 数据结构--二叉树的遍历--求二叉树的深度(后序遍历)
- C++数据结构--二叉树的建立,前序遍历,中序遍历和后序遍历
- C++数据结构--二叉树的前序遍历,中序遍历,后序遍历
- 【华为练习题】二叉树遍历
- 数据结构之二叉树的前序遍历、中序遍历、后序遍历、层序遍历
- 数据结构 二叉树遍历之前序、中序、后序以及层次遍历实现
- 数据结构基础 后序遍历和中序遍历还原二叉树
- 数据结构——根据后序遍历与中序遍历构建二叉树
- 数据结构二叉树遍历之中序遍历
- or1200下Raw-OS学习(仿真环境篇)
- OpenVPN中的几个和连接相关的Timer解析
- 数据结构练习题---先序遍历二叉树
- html5 拖放操作集锦
- hdu 1358 Period
- 数据结构练习题---后序遍历二叉树
- do...while(0)的妙用
- ab测试tomcat并发性能(测试BIO与NIO差别)(一)
- BFS+剪枝--hdoj1195(不错)
- windows8和windowsserver2012不联网安装.net3.5(包括2.0和3.0)
- ccny_vision compiling on ros-fuerte
- 最短路径+Dijkstra+打印路径
- 三十分钟掌握STL
- cocos2dx 自己画图