题目描述

利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#“时表示该结点不需要创建,否则创建该结点。最后再统计创建完成的二叉树的深度(使用二叉树的后序遍历算法)。需要注意输入数据序列中的”#“字符和非”#"字符的序列及个数关系,这会最终决定创建的二叉树的形态。

输入

输入为先序遍历二叉树结点序列。

输出

对应的二叉树的深度。

样例输入

A##
ABC####
AB##C##
ABCD###E#F##G##
A##B##

样例输出

1
3
2
4
1

参考程序

#include <stdio.h>
#include<malloc.h>typedef struct BiTNode
{char data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;BiTree CreateBiTree()
{char ch;BiTree T;scanf("%c",&ch);if(ch=='#') T=NULL;else{T = (BiTree)malloc(sizeof(BiTNode));T->data = ch;T->lchild = CreateBiTree();T->rchild = CreateBiTree();}return T;
}int Height(BiTree T)
{int l,r;if(T==NULL) return 0;else{l=Height(T->lchild);r=Height(T->rchild);return (l>r)?(l+1):(r+1);}
}int main()
{BiTree T;T = CreateBiTree();int t;t=Height(T);printf("%d",t);return 0;
}

注意

该程序仅供学习参考!

SWUST OJ 971: 统计利用先序遍历创建的二叉树的深度相关推荐

  1. 971: 统计利用先序遍历创建的二叉树的深度

    971: 统计利用先序遍历创建的二叉树的深度 题目描述 利用先序递归遍历算法创建二叉树并计算该二叉树的深度.先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接 ...

  2. SWUSTOJ #971 统计利用先序遍历创建的二叉树的深度

    SWUSTOJ #971 统计利用先序遍历创建的二叉树的深度 题目 输入 输出 样例输入 样例输出 源代码 题目 利用先序递归遍历算法创建二叉树并计算该二叉树的深度.先序递归遍历建立二叉树的方法为:按 ...

  3. 数据结构之971: 统计利用先序遍历创建的二叉树的深度

    题目: 代码: #include<iostream> using namespace std; typedef struct BinaryTree {char data;struct Bi ...

  4. #swust oj971 和972统计利用先序遍历创建的二叉树的深度和宽度

    971: 统计利用先序遍历创建的二叉树的深度 思路: 1.先序递归遍历创建二叉树 2.当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点 3.最后后序遍历算法统计二叉树 ...

  5. SWUST OJ#1052 输出利用先序遍历创建的二叉树中的指定结点的双亲结点

    目录 题目 思路 代码 题目 题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的双亲结点.约定二叉树结点数据为单个大写英文字符.当接收的数据是字符"#"时表示该结点 ...

  6. SWUST OJ 978: 输出利用先序遍历创建的二叉树的中序遍历序列

    题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树的中序遍历序列.先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建 ...

  7. SWUST OJ 1051: 输出利用先序遍历创建的二叉树中的指定结点的子结点

    先吐槽一下"孩子"居然是禁止使用的词汇?!我说"孩子节点都不行"嘛 题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的儿子结点.约定二叉树结点数 ...

  8. SWUST OJ 1052: 输出利用先序遍历创建的二叉树中的指定结点的双亲结点

    题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的双亲结点.约定二叉树结点数据为单个大写英文字符.当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点.最 ...

  9. SWUST OJ 1053: 输出利用先序遍历创建的二叉树中的指定结点的度

    水了三题一摸一样的题目,好快乐 题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的度.约定二叉树结点数据为单个大写英文字符.当接收的数据是字符"#"时表示该结点不需 ...

最新文章

  1. Hibernate中sessoin的flush学习笔记
  2. 使用elementui实现表单上传功能_使用ElementUI中的upload组件上传Excel文件
  3. 如何用最简单的方式理解傅立叶变换?
  4. 浅谈Fragment
  5. python十进制转二进制,八进制和十六进制
  6. POJ 3988 Selecting courses
  7. CSDN blog 还需要继续改进
  8. 什么是java OOM Out Of Memory 内存溢出?如何分析及解决oom问题?
  9. 解读 JVM 类加载器-一篇文章简单易懂
  10. 史上最全场景文字识别资源汇集(56篇重要论文 + 20 个开源代码 + 330 个实验结果 + 1882个统计信息)...
  11. 未来在哪里?我是这样看阿里大数据的
  12. 会计专业应用计算机操作,中职会计专业计算机应用基础教学
  13. 怎样做一次好的活动策划?
  14. Excel分组最大级别为8(outlineLevel最大为7)
  15. 读书的5个秘诀 (余秋雨)
  16. stp文件怎么变文件夹_PDPS教程之数模数据格式转换-stp文件怎么打开
  17. 各大容器常用的库(2021-12-10更新)
  18. oracle and not 的用法,[ORACLE]详解not in与not exists的区别与用法(not in的性能并不差!)...
  19. “大部人从外界看阿里是‘雾里看花’”,所以马云亲自敲出了这5000字的致股东信
  20. unity AudioToolkit 音频工具包的简介+使用方法

热门文章

  1. Java实现Excel操作的方式
  2. 混合罚函数法matlab报错,罚函数法MATLAB程序
  3. 【微信小程序常识】如何发布微信小程序体验版
  4. 腾讯云申请免费SSL证书
  5. Elasticsearch:IK 中文分词器
  6. CodeWarrior下载及安装
  7. Linux中进程的退出
  8. 事件知识图谱项目整理
  9. dataview中写入对象_DataView对象
  10. C++ char类型