森林转二叉树,二叉树无右孩子结点的个数
对于森林中的所有分支结点(分支结点就是非叶子结点,包含了根节点)
:其所有孩子都会连到它对应二叉树的左子树中,最左边的孩子成为这棵左子树的根节点,最右边的孩子由于没有兄弟了,转为二叉树后,它的右孩子一定为空。
也就是说,对于森林中的每个分支结点,都存在它的1个孩子结,转换为二叉树后右孩子为空,设森林有n个分支结点,故有n个对应的无右孩子的结点。
再来看二叉树的根节点(见下图中的B结点):它作为分支结点,提供了一个无右孩子的结点(见下图B的黑色箭头);作为根结点本身,在森林中的最右兄弟(见下图中的D结点)转为二叉树后也是没有右孩子的(见下图B的红色箭头),因此根节点总共提供了2个无右孩子的结点。
因此,森林转二叉树,无右孩子的结点由两部分提供:每个分支结点提供一个+根节点额外提供一个,总共有n+1个结点无右孩子。树可以看做只有1棵树的森林,也能得到同样的结论。
一图胜千言,看这张图应该会容易理解一些,黑色箭头指向作为分支结点提供的无右孩子的结点,红色表示根结点作为其本身提供的无右孩子的结点
底图出自王道考研数据结构的这个视频(在10min左右)
森林转二叉树,二叉树无右孩子结点的个数相关推荐
- 统计二叉树中只有右孩子的结点个数
Description 设二叉树的存储结构为二叉链表.在二叉链表中的每个结点由三部分组成:左孩子指针.右孩子指针和结点数据,其中如果一个结点的左右孩子不存在,则对应的指针记录为空,空指针用字符^占位. ...
- 求二叉树中第K层结点的个数
一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由 ...
- 求二叉树中结点个数代码java_求二叉树中第K层结点的个数
一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由 ...
- 树和森林转二叉树,二叉树无右孩子(或右指针域为空)的结点个数计算思路
前提是知道非终端结点(分支结点)的个数,假设非终端结点的个数为n 1.对于树转二叉树: 因为转化规则是"左孩子右兄弟",如果有n个分支结点,因为每个分支结点都会有孩子,这些孩子都是 ...
- 数据结构——简单实现森林转化为二叉树
孩子兄弟表示法的理解与代码实现|树转化为二叉树 森林是由若干棵树组成,可以将森林中的每棵树的根结点看作是兄弟,由于每棵树都可以转换为二叉树,所以森林也可以转换为二叉树. 将森林转换为二叉树的步骤是: ...
- 树:求二叉树的高度和叶子结点数量
算法代码很简单都是用使用递归计算,大家把递归思想领悟到就ok了. 二叉树高度算法 //求二叉树的高度 采用递归的方式 void GetHeight(BiTree tree, int* heightNu ...
- DS二叉树—二叉树结点的最大距离
题目描述 二叉树两个结点的距离是一个结点经过双亲结点,祖先结点等中间结点到达另一个结点经过的分支数.二叉树结点的最大距离是所有结点间距离的最大值.例如,下图所示二叉树结点最大距离是3,C和D的距离. ...
- 设森林F对应的二叉树为B,它有m个结点,B的根p,p右子树结点个数n,森林F中第一棵树的结点个数
题目:设森林F对应的二叉树为B,它有m个结点,B的根p,p右子树结点个数n,森林F中第一棵树的结点个数 设森林F对应的二叉树为B :它的意思就是将森林F转换为二叉树. 它有m个结点 :这颗二叉树总共有 ...
- 找二叉树中给定元素的的左孩子结点_二叉树的实现和操作
0.定义: 二叉树,是每个节点最多只有两个分之的树结构,通常分之被称作"左子树"或者"右子树":二叉树的分之具有左右次序,且不能随意颠倒. 1.特性 在二叉树的 ...
最新文章
- HTML基础 --- HTML简介
- loader调用过程
- python3.0与2.0,python3.0与python2.0有哪些不同
- Backup Exec for Windows Servers (BEWS) 简体中文文档汇总(持续更新)
- mat 内存分析 Linux,JVM内存分析工具MAT使用简介
- 后疫情时代,初创企业生存之策
- JavaBean 与 EJB 的区别
- 苹果Mac高级音乐播放器:Swinsian
- kubernetes视频教程笔记 (4)-服务发现-service和pod组建
- Linux虚拟机设置Samba服务
- 天正网络版服务器填写位置,教你如何在天正里面输入坐标定位
- segy地震数据的读取python_python segy格式地震数据读写包segyio学习笔记(二)
- sqlhelper java_java版sqlhelper
- 账龄分析表excel模板_Excel技巧 | 简单而强大的功能 数据统计分析必备—数据透视表...
- Webpack打包UMD的export要带default访问问题
- Angularjs1 [$rootScope:inprog] inprogress error
- python 100days github_GitHub - 382982408/Python-100-Days: Python - 100天从新手到大师
- 安装QQ时创建目录失败的解决办法
- CM安装成功,CM的web界面登录不上解决方案
- 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)