(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 ...
最新文章
- 滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star
- 四旋翼———控制系统
- Keras中Callback函数的使用
- 主机动手系列 — 怎么管理Suse Linux
- iis 防火墙防止恶意ip攻击
- Linux系统中安装nodejs的步骤教程
- 阿里云服务器由于被检测到对外攻击,已阻断该服务器对其它服务器端口的访问...
- C# Winform 窗体美化(八、Icon)
- 第二章 面向对象的编程风格
- 你真的理解反向传播吗?面试必备
- slf4j log4j logback关系详解和相关用法
- 蓝牙耳机哪款适合玩枪战类手游?低延迟听声辨位五款蓝牙耳机推荐
- 自动无刷电机和螺旋桨测试-如何测试无人机的动力系统?
- 《明朝那些事儿》--主要人物整理
- html快捷方式指定浏览器打开网页,设置桌面网址快捷方式,并默认使用指定浏览器打开...
- 关于Employee 类的使用
- Linux日文教程,在Deepin/Ubuntu下安装fcitx-Anthy以输入日语(日文)
- PhotoScan软件进行无人机数据处理流程
- 我母亲在一家计算机公司工作,我的母亲作文
- java反射为什么消耗资源_Java反射笔记
热门文章
- 基于tcp协议的客户机与服务器通信程序的设计 c++,TCP服务器端和客户端程序设计...
- mysql实现斐波那契,C#实现斐波那契数列的几种方法整理
- 7c盘满了怎么扩容_C盘爆满怎么办?扩容!
- js排序的时间复杂度_javascript的array.indexOf的时间复杂度是多少?
- 计算机/程序员常用英语(持续添加,包括一些简写)
- 插入排序详解(Java实现)
- 面试官:都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
- Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 redis 缓存
- CentOS 6.5 中安装Jenkins
- CentOS 7.5 yum 安装 Git