树——通用树到二叉树的转换
1,已经创建了通用树结构,有必要创建另一种树结构吗?
2,简化树就直接减少结点中孩子的数量,但是这样树还能通用吗?
3,通用树结构的回顾:
1,双亲孩子表示法:
1,每个结点都有一个指向双亲的指针;
2,每个结点都有若干个指向其孩子的指针;
4,另一种树结构模型:
1,孩子兄弟表示法:
1,每个结点都有一个指向其第一个孩子的指针;
2,每个结点都有一个指向其第一个右兄弟的指针;
1,孩子兄弟表示法可以描述普通的树型结构,因为通过根结点可以访问到这一个树形结构的每一个结点;
5,孩子兄弟表示法的特点:
1,能够表示任意的树形结构;
2,每个结点包含一个数据成员和两个指针成员;
1,形态相对固定,实现相对简单;
3,孩子结点指针和兄弟结点指针构成了“树杈”;
1,二叉表示法就是“孩子兄弟”表示模型,其抽象后就是二叉树,但实现不是用“孩子兄弟”指针实现的;
2,二叉树是即将讨论的内容,不在关注通用树及其在二叉或者“孩子兄弟”表示法下是如何转换的,重点放在二叉树的相关内容创建和算法研究;
6,二叉树的定义:
1,二叉树是由 n(n >= 0)个结点组成的有限集合,该集合或者为空,或者是由一个根结点加上两颗分别称为左子树和右子树的、互不相交的二叉树组成;
7,二叉树五种形态:
1,二叉树结点只有三种形态,依据子结点数目分;
8,特殊二叉树:
1,满二叉树(Full Binary Tree):
1,如果二叉树中所有分支结点的度数都为 2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树;
1,除了叶结点,任何分支结点度数都为 2,且叶结点在同一层次;
2,完全二叉树(Complete Binary Tree):
1,如果一棵具有 n 个结点的高度为 k 的二叉树,它的每一个结点都与高度为 k 的满二叉树编号为 1到 n 的结点一一对应,则称这棵树为完全二叉树。(从上到下从左到右编号)
9,完全二叉树特性:
1,同样结点数的二叉树,完全二叉树的高度最小;
1,按顺序排列的;
2,完全二叉树的叶结点仅出现在最下面两层:
1,最底层的叶结点一定出现在左边;
2,倒数第二层的叶结点一定出现在右边;
3,完全二叉树中度为 1 的结点只有左孩子;
1,完全二叉树是还没形成的满二叉树,满二叉树是完全二叉树;
10,小结:
1,通用树结构采用了双亲结点表示法进行描述;
2,孩子兄弟表示法有能力描述任意类型的树结构;
3,孩子兄弟表示法能够将通用树转化为二叉树;
4,二叉树是最多只有两个孩子的树;
转载于:https://www.cnblogs.com/dishengAndziyu/p/10925370.html
树——通用树到二叉树的转换相关推荐
- (转载)树、森林与二叉树的转换
传送门 树.森林与二叉树的转换 1.树转换为二叉树 由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号. 将树转换成二叉树的步骤是: 加线.就是在所 ...
- 树、森林、二叉树的转换
树.森林.二叉树的转换 树变二叉树 树变二叉树的规则:每个结点的左指针指向它的第一个孩子结点.右指针指向它在树中的相邻兄弟结点. 也即:左孩子右兄弟. 根没有兄弟,所以转换以后的树没有右子树. 具体操 ...
- 树的应用 —— 树、森林与二叉树的转换
树的应用 -- 树.森林与二叉树的转换 根据树的孩子兄弟表示法,任何一棵树都可以根据秘籍转换为二叉链表存储形式. 在二叉链表存储法中,每个节点都有两个指针域,也被称为二叉树表示法.这样,任何树和森林都 ...
- 数据结构——树、森林、二叉树的转换
树.森林与二叉树的转换 树转换二叉树 规则:左孩子右兄弟,每个结点左指针指向它的第一个孩子结点,右指针指向它在树中相邻兄弟结点. 二叉树转换为树 规则: 逆过程,将指针修改回来,指向其双亲结点. 森林 ...
- 课堂笔记:树、森林与二叉树的转换、哈夫曼树
树.森林与二叉树的转换 树转换为二叉树: 1.兄弟加线: 2.保留双亲与第一孩子连线,删去与其他孩子的连线: 3.顺时针转动,使之层次分明. 树的前序遍历等价于二叉树的前序遍历,树的后序遍历等价于二叉 ...
- 树、森林与二叉树的转换以及其应用
树.森林与二叉树的转换以及其应用 1.树.森林与二叉树的转换 1.1. 树转换成二叉树 1.2. 森林转换成二叉树 2. 树的存储结构 2.1. 双亲表示法 2.2. 孩子链表表示法 2.3. 孩子兄 ...
- 理论基础 —— 二叉树 —— 树、森林、二叉树的转换
[概述] 从树的孩子兄弟表示法和二叉树的二叉链表表示可以看出,树的孩子兄弟表示法实质上是二叉树的二叉链表存储形式,第一个孩子指针和右兄弟指针分别相当于二叉链表的左孩子指针和右孩子指针. 因此,从物理结 ...
- 树和森林与二叉树的转换、树和森林的遍历
全部数据结构.算法及应用课内模板请点击:https://blog.csdn.net/weixin_44077863/article/details/101691360 树和森林转二叉树其实十分简单,我 ...
- [转载]树、森林和二叉树的转换
本文转载自:http://www.cnblogs.com/zhuyf87/archive/2012/11/04/2753950.html 树转换为二叉树 (1)加线.在所有兄弟结点之间加一条连线. ( ...
最新文章
- 吴甘沙:天外飞“厕”、红绿灯消失,未来无人驾驶将被重新定义
- PyTorch Cookbook(常用代码段集锦)
- vector机器人 HOW TO RESET, ERASE AND RESTORE VECTOR 如何重置,删除和恢复向量
- Java并发编程71道面试题及答案 1
- 可以使任何人获得管理员权限的Windows 10系统漏洞
- Java多线程编程-(4)-线程间通信机制的介绍与使用
- CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告
- saiku docker配置部署_【安装教程】01 Gitea Docker 安装部署 - 【SkywenCode】技术团队基...
- js实现右键单击打开自定义的菜单
- Pycharm 2019 添加 docker 解释器
- 如何固定最小宽度_如何使用更新的HTML和CSS函数创建响应式设计
- quartus仿真28:JK触发器实现的脉冲分配器(分析)
- 常用的字符串对象方法
- Visio 2010工具产品密钥
- 安装软件出现错误处理:internal error2503/2502
- 连接Wifi时自动弹出登录页面是如何做到的?
- java计算一个多边形的重心_多边形重心问题 java
- [HTML5]配置Ngnix服务器支持manifest
- 你都用 Python 来做什么 学Python能做什么
- LC 559. Maximum Depth of N-ary Tree
热门文章
- mysql 组合查询_MySQL组合查询教程
- 动态分区添加的新字段无法插入数据
- 使用 Akka 实现 Master 与 Worker 之间的通信
- appium自动化测试_Appium自动化测试入门教程No.1—— Appium介绍
- 垃圾回收机制和JVM垃圾回收常见算法
- hasp 加密 java_加密软件HASP的使用说明
- 自定义键盘组件_一文读懂!iOS系统组件的设计规范全解
- 西电计算机学院导师苗启广,Xidian Media Lab
- linux中split函数用法,Linux csplit 命令用法详解-Linux命令大全(手册)
- numpy python 兼容_Python 2和3之间的numpy数组的不兼容性