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

  • 题目
    • 输入
    • 输出
    • 样例输入
    • 样例输出
  • 源代码

题目

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

输入

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

输出

对应的二叉树的深度。

样例输入

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

样例输出

1
3
2
4
1

源代码

#include<iostream>
#include<queue>using namespace std;int i = 0;
class binarytree;
class TreeNode
{friend class binarytree;
public:void getleft(TreeNode * p){leftnode = p;}void getright(TreeNode *p){rightnode = p;}TreeNode(char a) { data = a; leftnode = NULL; rightnode = NULL; };char data;TreeNode *leftnode;TreeNode *rightnode;
};
class binarytree
{public:void getroot(TreeNode* p){root = p;}int preoder();                                          //后序遍历int preoder(TreeNode* current,int h1,int h2);void preinsert(TreeNode* &current, char* arr);TreeNode * root;
};
int binarytree::preoder()
{int h1=1, h2=1;return preoder(root,h1,h2);
}
int h = 0;
int binarytree::preoder(TreeNode* current,int h1,int h2)
{if (current){if (h1 >= h2&&h1 > h)h = h1;else if (h2 >= h1&&h2 > h)h = h2;h1++;preoder(current->leftnode,h1,h2);h2++;preoder(current->rightnode,h2,h2);}return h;
}
void binarytree::preinsert(TreeNode* &current, char* arr)       //注意这里的是引用地址
{if (arr[i] == '#'){current = NULL;i++;}else{current = new TreeNode(arr[i]);i++;preinsert(current->leftnode, arr);preinsert(current->rightnode, arr);}
}int main()
{binarytree Tree;char arr[1000];cin >> arr;Tree.preinsert(Tree.root, arr);cout<< Tree.preoder();return 0;
}

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

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

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

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

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

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

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

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

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

  5. SWUSTOJ #978 输出利用先序遍历创建的二叉树的中序遍历序列

    SWUSTOJ #978 输出利用先序遍历创建的二叉树的中序遍历序列 题目 输入 输出 样例输入 样例输出 源代码 题目 利用先序递归遍历算法创建二叉树并输出该二叉树的中序遍历序列.先序递归遍历建立二 ...

  6. #swust oj978,979,980输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序

    输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序列 ***层次遍历思路: 1.初始化一个队列 2.把根节点指针入队 3.队列非空时:出队列取得一个结点指针,访问该节点,若该节点的左 ...

  7. SWUST OJ#1051(数据结构之输出利用先序遍历创建的二叉树中的指定结点的Child结点)

    目录 题目 思路 数据结构代码 小结 题目 思路 从根节点开始遍历,在节点不为空的前提下,进行类似与数学的分类讨论!!!接下来请各位看代码部分,有疑问评论区留言,有问必答!!! 数据结构代码 #inc ...

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

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

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

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

最新文章

  1. .NET chart 毫秒级坐标轴
  2. r语言多重共线性_R语言与计量经济学(二)多重共线性
  3. NLP:基于snownlp库对文本实现提取文本关键词和文本摘要
  4. BUUCTF [FlareOn1]Bob Doge [GXYCTF2019]
  5. 全视曲面屏设计,三星S8又一次走在了行业创新的最前沿
  6. 使用SAP云平台的destination消费Internet上的OData service
  7. P2261-[CQOI2007]余数求和【数论,约数】
  8. html拖拽吸附插件,前端拖拽插件gridster.js
  9. php获取系统常量函数,PHP:从php文件中获取PHP的变量,函数和常量
  10. mrsql查询第二高的成绩_及锋而试 锻铁成钢——高二年级部召开第二次考试成绩分析会...
  11. 《21天学通HTML+CSS+JavaScript Web开发(第7版)》——1.4 统一资源定位符
  12. 消费者生产者代码之---一步一步带你写
  13. 工作回忆总结(第二年)
  14. mac硬盘空间怎么清理?这样也能清理出上10G的磁盘空间
  15. hive不在同一台机 hue_【Impala篇】---Hue从初始到安装应用
  16. Sketch 54.1 Shark 鲨鱼中文汉化特别版 Mac 设计师必备的原型UI设计工具
  17. 用英雄联盟的方式讲解 JavaScript 设计模式
  18. java获取图片相对路径_相对路径和绝对路径的区别,java获取项目访问路径的方法...
  19. 论文解读:跨域推荐模型MiNet
  20. [生存志] 第102节 屈原既放赋离骚

热门文章

  1. 历数金融危机 摘自http://www.ftchinese.com/sc/index.jsp
  2. php 对图片缩放,php 图片等比例缩放和截图
  3. 计算机中丢失d3dx941,d3dx9_41.dll(支持64位)
  4. 安装libjpeg库后提示libjpeg.so.8不存在(linux环境)
  5. 计算机在环境设计中的应用前景,浅谈数字媒体艺术的现状与前景
  6. OpenCV Java入门五 结合摄像头识脸和拍照
  7. YYDS《剑指Offer》再续新篇,百万程序员人手一册
  8. Word奇偶页的页眉页脚设置
  9. html5 在线字体库,网络字体@font-face,如何处理网页中的特殊字体?
  10. php网站加广告位,织梦广告位的添加调用