树的左右子树深度

全树的深度

//因为我们现在能够不重复,不遗漏获取每一个节点,只有前中后序3种方法,所以,我们首先先写出
//先序递归获取树的深度
int hight = 0;//它可以在多个函数之间共享
//前序是根左右,我们把每一个树从root出发的树,可以看出左右两个子树
//无论我们如何遍历,我们前进到每一个节点都是潜在的根节点。
//我们可以认为每到一个新节点,就是到了一个新树,
//如果说,我们对新节点的发现,我们就认为到了一个新层,那么我们累加
//记录就可以了
//我用level作为当前树的高度
//当我用root,0传入的时候,就意味着已经有第一层的计数起始器
//我们用打擂台的思路,用h比对,就可以完成记录
/*
找一组数中的最大值
for(){if(max < a[i]) max =a[i]}
*/
int TreeDepth_DLR(BitTree *pNode, int level) {if (pNode) {level++;if (level > hight)hight = level;//这一就意味伴随着level的不断深入,我们的hight始终获得的是树中最深的层次printf("%d ", pNode->data);//从327开始到333行,我们认为这个函数的终止条件完成了//根据我们前面的观点,递归函数本身就是答案//因此hight就应该接递归函数的返回值hight = TreeDepth_DLR(pNode->left, level);hight = TreeDepth_DLR(pNode->right, level);//因为所有节点的遍历都是跟左右,所以和当前树节点传入的同时,它当前做在的层数我们要传入}return hight;
}

叶子结点统计

//求叶子节点:树的遍历是一种非线性遍历,在业务编程中,从实现角度上
//用递归遍历三个方法之一,判断节点属性,就可以完成暴力搜索树
int LeafCount = 0;
void LeafCount_DLR(BitTree* t) {if (t) {if(t->left == NULL && t->right == NULL){printf("%d ", t->data);LeafCount++;}LeafCount_DLR(t->left);LeafCount_DLR(t->right);}
}

获取二叉树的所有叶子节点、获取全树深度与左右子树深度求解:递归相关推荐

  1. 补充:python实现二叉树里面求叶子节点的算法

    python实现二叉树里面求叶子节点的算法 叶子节点概念: 一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称"叶子". 叶子是指度为0的结点,又称为终端结点. 图形: 这个 ...

  2. c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完. 目前我选择C语言,Python和Java作为实现语言,因为这三种 ...

  3. C语言实现 二叉树 对任意类型数据的遍历、叶子节点统计、树高计算

    本文主要实现C语言对二叉树的构造,可存储所有类型数据,实现数据域的遍历,本文主要介绍递归的遍历方法,含详细图文:以及树高.叶子节点的计算等. 1 二叉树构造 typedef struct Tree / ...

  4. 求树的遍历、树的叶子节点个数、树的高度、copy树

    1 #include<iostream> 2 3 using namespace std; 4 5 typedef struct Treenode 6 { 7 Treenode* left ...

  5. 树的应用:求树的叶子节点数 求树的高度、copy一棵树

    #if 0 //树的应用 //1.求树的叶子节点: 度为0的节点 //先判断根节点是否是叶子节点,然后计算左子树的叶子节点个数 //在计算 右子树节点个数void coutLeaf(BiNode *T ...

  6. html 获得文本节点,JavaScript获取节点——获取文本节点

    0.前言 上一章讲了如何获取获取标签(元素)节点,这一节来和大家说一下如何获取属性节点. 我还是用代码来讲解: 获取属性节点 var jsInput = document.getElementById ...

  7. 计算二叉树叶子节点的数目

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/twilight_karl/article/details/53468024 二叉树采用链式储存结构,设计算 ...

  8. 求二叉树节点个数、叶子节点、节点层次与宽度

    需实现:(1)输出二叉树b的节点个数 (2)输出二叉树b的叶子节点个数 (3)求二叉树b中指定节点值(假设所有节点值不同)的节点的层次. (4)利用层次遍历求二叉树b的宽度 #include < ...

  9. C语言二叉树叶子节点的求法

    C语言叶子节点的求法可以用递归来实现 1.使用递归实现叶子结点的求法 C语言中的二叉树叶子节点求法是一个比较基础的问题.在二叉树中,叶子节点是指没有子节点的节点.为了求出二叉树中的叶子节点,我们可以采 ...

最新文章

  1. 用筛法求之N内的素数。(N 1000000)
  2. 将C++里的Mat矩阵保存并由matlab提取分析
  3. logback 常用配置详解(二) appender
  4. Erlang命令行提示符汇总
  5. 2016年腾讯产品笔试真题
  6. CF573D-Bear and Cavalry【动态dp】
  7. python的指针跟c的区别_ctypes中的LP_x*指针和*p指针有什么区别?(以及与结构的奇怪交互)...
  8. 数据用压缩 bcd 码 java_IT职场新人选python,go还是java?用数据来说话
  9. 手把手教你做产品经理1.0
  10. 单片机拼字程序怎么做_小程序商城怎么做?做一个小程序需要多少钱
  11. 虚拟世界来自现实世界,同时又促进现实世界
  12. 数据库插中文变问号,Mybatis存储数据乱码,linux服务器上MySQL数据库乱码
  13. TiDB 源码阅读系列文章(九)Hash Join
  14. c语言编程线性规划,C语言大作报告_线性规划求解_基科3字班
  15. Coding and Paper Letter(五十九)
  16. 学习Java有哪些值得推荐的Java书籍?
  17. 华硕笔记本电脑重装系统教程,华硕笔记本系统重装教程
  18. php to es7,只需五步 集成新版 Elasticsearch7.9 中文搜索 到你的 Laravel7 项目
  19. ListView中如何优化图片
  20. 计算机科学中的常见树大全

热门文章

  1. full calendar mysql_fullcalendar 及mysql数据库的工作日管理
  2. 对输入框进行探索性测试思路
  3. 合伙人分开的一点思考
  4. PC和手机怎么实现绝对居中?
  5. Vmware的 管理工具概述
  6. IntelliJ IDEA 2016.3.1 学习git 码云插件 学习笔记
  7. 公开课:如何成为一名高级系统运维工程师(架构师)?
  8. 【dotnet跨平台】Visual Studio Code常见问答
  9. 你所知道的Java单例模式并不是单例模式
  10. vim批量转文件编码