描述

给定一颗二叉树,要求输出二叉树的深度以及后序遍历二叉树得到的序列。本题假设二叉树的结点数不超过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. 滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star
  2. 四旋翼———控制系统
  3. Keras中Callback函数的使用
  4. 主机动手系列 — 怎么管理Suse Linux
  5. iis 防火墙防止恶意ip攻击
  6. Linux系统中安装nodejs的步骤教程
  7. 阿里云服务器由于被检测到对外攻击,已阻断该服务器对其它服务器端口的访问...
  8. C# Winform 窗体美化(八、Icon)
  9. 第二章 面向对象的编程风格
  10. 你真的理解反向传播吗?面试必备
  11. slf4j log4j logback关系详解和相关用法
  12. 蓝牙耳机哪款适合玩枪战类手游?低延迟听声辨位五款蓝牙耳机推荐
  13. 自动无刷电机和螺旋桨测试-如何测试无人机的动力系统?
  14. 《明朝那些事儿》--主要人物整理
  15. html快捷方式指定浏览器打开网页,设置桌面网址快捷方式,并默认使用指定浏览器打开...
  16. 关于Employee 类的使用
  17. Linux日文教程,在Deepin/Ubuntu下安装fcitx-Anthy以输入日语(日文)
  18. PhotoScan软件进行无人机数据处理流程
  19. 我母亲在一家计算机公司工作,我的母亲作文
  20. java反射为什么消耗资源_Java反射笔记

热门文章

  1. 基于tcp协议的客户机与服务器通信程序的设计 c++,TCP服务器端和客户端程序设计...
  2. mysql实现斐波那契,C#实现斐波那契数列的几种方法整理
  3. 7c盘满了怎么扩容_C盘爆满怎么办?扩容!
  4. js排序的时间复杂度_javascript的array.indexOf的时间复杂度是多少?
  5. 计算机/程序员常用英语(持续添加,包括一些简写)
  6. 插入排序详解(Java实现)
  7. 面试官:都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
  8. Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 redis 缓存
  9. CentOS 6.5 中安装Jenkins
  10. CentOS 7.5 yum 安装 Git