描述

给定一颗二叉树,要求输出二叉树的深度以及后序遍历二叉树得到的序列。本题假设二叉树的结点数不超过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)数据结构练习题——后序遍历二叉树相关推荐

  1. 数据结构练习题---先序遍历二叉树

    数据结构练习题---先序遍历二叉树 时间限制(普通/Java):3000MS/10000MS          运行内存限制:65536KByte 总提交:107            测试通过:64 ...

  2. //数据结构:先序、中序、后序遍历二叉树。输入数据:abd##eg###c#f#h##

    //数据结构:先序.中序.后序遍历二叉树.输入数据:abd##eg###c#f#h## #include <stdio.h> #include <stdlib.h> //定义数 ...

  3. 数据结构-----后序遍历二叉树非递归算法(利用堆栈实现)

    一.非递归后序遍历算法思想 后序遍历的非递归算法中节点的进栈次数是两个,即每个节点都要进栈两次,第二次退栈的时候才访问节点. 第一次进栈时,在遍历左子树的过程中将"根"节点进栈,待 ...

  4. 非递归先、中、后序遍历二叉树(C语言)

    文章目录 前言 一.二叉树非递归遍历算法 1.先序遍历 2.中序遍历 3.后序遍历 二.完整程序 三.运行结果实例 前言 本程序采用C语言编写,栈和二叉树的基本操作函数基于严蔚敏老师的<数据结构 ...

  5. php循环方法实现先序、中序、后序遍历二叉树

    二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree). <?phpnam ...

  6. 002 前、中、后序遍历二叉树(递归迭代)

    1.递归法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 2.迭代法 ① 前序遍历二叉树 ② 中序遍历二叉树 ③ 后序遍历二叉树 类似前序遍历,先"中→右→左"遍历二 ...

  7. 非递归后序遍历二叉树总结(2种方法)

    算法 非递归后序遍历二叉树总结(2种方法) @author:Jingdai @date:2020.12.04 传送门 非递归先序遍历二叉树 非递归中序遍历二叉树 方法1 非递归用栈来辅助遍历,后序遍历 ...

  8. 数据结构基础 后序遍历和中序遍历还原二叉树

    [问题描写叙述] 二叉树            A        /       /        B       C      /   /   /   /      D   E   F   G   ...

  9. 二叉树 -php实现先序、中序、后序遍历二叉树

    二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被用于实现二叉查 ...

  10. 后序遍历二叉树(迭代 vs 递归)

    二叉树的后序遍历 后序遍历:左 - 右 - 根 递归版本 注意递归的结束条件 root == null 按照遍历的顺序每次遇到root将答案压入结果数组中去 var postorderTraversa ...

最新文章

  1. html 提交表单,图片和文字一起提交,图片存入服务器,图片地址和表单信息存入数据库,带后端php代码
  2. python中类的约束和限制对象添加属性
  3. ASP.NET页面包含另外一个页面
  4. android 自定义圆形图片素材,Android 使用shape制作drawable素材
  5. Source Insight checking for modified files 卡顿(Reload externally modified files automatically取消)(未解决)
  6. Xcode更改ios app图标
  7. 基于SignalR实现B/S系统对windows服务运行状态的监测
  8. golang获取结构体中的tag_26. Go 语言中结构体的 Tag 用法
  9. ASP.NET Core中的内存缓存
  10. Hadoop集群安装部署_伪分布式集群安装_01
  11. (王道408考研数据结构)第五章树-第四节3:哈夫曼树基本概念、构造和哈夫曼编码
  12. 基础知识(十二)Opengl回顾记录
  13. MFC窗口程序显示命令行输出窗口的方法
  14. c语言中.和-区别,c语言中-和.的区别
  15. sql中的一些通用函数
  16. 昆明钟英高中2021年高考成绩查询,昆明官渡钟英中学2021年排名
  17. MySQL引擎innodb和mysum_mysql数据库引擎 MyISAM和 InnoDB区别
  18. 概率论-条件概率,全概率,概率乘法公式,贝叶斯公式
  19. java cnzz_cnzz 模拟请求登录(传入url get data ) demo
  20. ie8 css hack 只适用ie8的css写法

热门文章

  1. kingroot android 7,KingRoot全球实现Android 7.0一键 Root
  2. mysql block是什么,php – MySQL PDO – try {block}里面应该是什么?
  3. ubuntu server 14.04/16.x 开启 root ssh 登录
  4. HTML DOM Image 对象
  5. 服务器给文件权限命令,chmod命令详细用法设置文件的权限
  6. layer icon对应图标
  7. 2019湖南多校第四场
  8. vue项目开发之v-for列表渲染的坑
  9. Winform 按钮权限拦截AOP
  10. Linux篇---Grep和正则匹配