(TOJ1224)数据结构练习题——后序遍历二叉树
描述
给定一颗二叉树,要求输出二叉树的深度以及后序遍历二叉树得到的序列。本题假设二叉树的结点数不超过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 3 3 4 2 1
1 #include <stdio.h> 2 #include <string.h> 3 #include <ctype.h> 4 #include <math.h> 5 6 int BiTree[10000]; 7 8 void PostTraverse(int T[], int e) 9 { 10 if(T[2*e+1]!=0) PostTraverse(T,2*e+1); 11 if(T[2*e+2]!=0) PostTraverse(T,2*e+2); 12 printf(" %d",T[e]); 13 } 14 15 void PostOrderTraverse(int T[]) 16 { 17 PostTraverse(T,0); 18 printf("\n"); 19 } 20 21 int TreeDeep(int T[], int n) 22 { 23 int i; 24 for(i=n-1; i>=0; i--) 25 { 26 if(T[i]!=0) break; 27 } 28 return (int)(log(i+1)/log(2)+1.1); 29 } 30 31 int main() 32 { 33 int n,t,i; 34 scanf("%d",&n); 35 while(n--) 36 { 37 i=0; 38 while(scanf("%d",&t) && t!=-1) 39 { 40 BiTree[i++]=t; 41 } 42 printf("%d",TreeDeep(BiTree,i)); 43 PostOrderTraverse(BiTree); 44 } 45 return 0; 46 } 47
转载于:https://www.cnblogs.com/xueda120/archive/2013/05/28/3102930.html
(TOJ1224)数据结构练习题——后序遍历二叉树相关推荐
- 数据结构练习题---先序遍历二叉树
数据结构练习题---先序遍历二叉树 时间限制(普通/Java):3000MS/10000MS 运行内存限制:65536KByte 总提交:107 测试通过:64 ...
- //数据结构:先序、中序、后序遍历二叉树。输入数据:abd##eg###c#f#h##
//数据结构:先序.中序.后序遍历二叉树.输入数据:abd##eg###c#f#h## #include <stdio.h> #include <stdlib.h> //定义数 ...
- 数据结构-----后序遍历二叉树非递归算法(利用堆栈实现)
一.非递归后序遍历算法思想 后序遍历的非递归算法中节点的进栈次数是两个,即每个节点都要进栈两次,第二次退栈的时候才访问节点. 第一次进栈时,在遍历左子树的过程中将"根"节点进栈,待 ...
- 非递归先、中、后序遍历二叉树(C语言)
文章目录 前言 一.二叉树非递归遍历算法 1.先序遍历 2.中序遍历 3.后序遍历 二.完整程序 三.运行结果实例 前言 本程序采用C语言编写,栈和二叉树的基本操作函数基于严蔚敏老师的<数据结构 ...
- php循环方法实现先序、中序、后序遍历二叉树
二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree). <?phpnam ...
- 002 前、中、后序遍历二叉树(递归迭代)
1.递归法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 2.迭代法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 类似前序遍历,先"中→右→左"遍历二 ...
- 非递归后序遍历二叉树总结(2种方法)
算法 非递归后序遍历二叉树总结(2种方法) @author:Jingdai @date:2020.12.04 传送门 非递归先序遍历二叉树 非递归中序遍历二叉树 方法1 非递归用栈来辅助遍历,后序遍历 ...
- 数据结构基础 后序遍历和中序遍历还原二叉树
[问题描写叙述] 二叉树 A / / B C / / / / D E F G ...
- 二叉树 -php实现先序、中序、后序遍历二叉树
二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被用于实现二叉查 ...
- 后序遍历二叉树(迭代 vs 递归)
二叉树的后序遍历 后序遍历:左 - 右 - 根 递归版本 注意递归的结束条件 root == null 按照遍历的顺序每次遇到root将答案压入结果数组中去 var postorderTraversa ...
最新文章
- html 提交表单,图片和文字一起提交,图片存入服务器,图片地址和表单信息存入数据库,带后端php代码
- python中类的约束和限制对象添加属性
- ASP.NET页面包含另外一个页面
- android 自定义圆形图片素材,Android 使用shape制作drawable素材
- Source Insight checking for modified files 卡顿(Reload externally modified files automatically取消)(未解决)
- Xcode更改ios app图标
- 基于SignalR实现B/S系统对windows服务运行状态的监测
- golang获取结构体中的tag_26. Go 语言中结构体的 Tag 用法
- ASP.NET Core中的内存缓存
- Hadoop集群安装部署_伪分布式集群安装_01
- (王道408考研数据结构)第五章树-第四节3:哈夫曼树基本概念、构造和哈夫曼编码
- 基础知识(十二)Opengl回顾记录
- MFC窗口程序显示命令行输出窗口的方法
- c语言中.和-区别,c语言中-和.的区别
- sql中的一些通用函数
- 昆明钟英高中2021年高考成绩查询,昆明官渡钟英中学2021年排名
- MySQL引擎innodb和mysum_mysql数据库引擎 MyISAM和 InnoDB区别
- 概率论-条件概率,全概率,概率乘法公式,贝叶斯公式
- java cnzz_cnzz 模拟请求登录(传入url get data ) demo
- ie8 css hack 只适用ie8的css写法
热门文章
- kingroot android 7,KingRoot全球实现Android 7.0一键 Root
- mysql block是什么,php – MySQL PDO – try {block}里面应该是什么?
- ubuntu server 14.04/16.x 开启 root ssh 登录
- HTML DOM Image 对象
- 服务器给文件权限命令,chmod命令详细用法设置文件的权限
- layer icon对应图标
- 2019湖南多校第四场
- vue项目开发之v-for列表渲染的坑
- Winform 按钮权限拦截AOP
- Linux篇---Grep和正则匹配