数据结构笔记之树与二叉树
来源:互联网 发布:炉石毕游侠知乎 编辑:程序博客网 时间:2024/06/02 07:29
四、树与二叉树
一、树是一个递归定义。当n=0时 称T为空树。逻辑上属于非线性结构(层次结构)
基本名词术语
1.结点的度:该结点拥有的子树的数目。
2. 树的度:树中结点度的最大值。
3.叶结点:度为0 的结点。(终端结点)
4.分支结点: 度非0 的结点。(非终端结点)
5. 树的层次: 根结点为第一层,若某结点在第i 层,则其孩子结点(若存在)为第i+1层。
6. 树的深度: 树中结点所处的最大层次数。(高度)
7. 树的有序性: 若树中结点的子树的相对位置不能随意改变,则称该树为有序树,否则称树为无序树。
二、
1. 满二叉树:
若一棵二叉树中的结点,或者为叶结点,或者具有两棵非空子树,并且叶结点都集中在二叉树的最下面一层,这样的二叉树为满二叉树。
2. 完全二叉树
若一棵二叉树中只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层从左至右的位置上.这样的二叉树为完全二叉树。
3、二叉树的性质
1、具有N个结点的非空二叉树有且仅有N-1个分支。
2、非空二叉树的第i层最多有个结点。
3、深度为h的非空二叉树最多有-1个结点。
4、在任意非空二叉树中,若叶节点的数目为n0,度为2的结点数目为n2,则有关系n0=n2+1成立。
5、具有n个结点的完全二叉树的深度h=[log2n]+1;
6、完全二叉树的编号。
4、二叉树的五种基本形态
【思考】:1 度为2的树是二叉树?
2 度为2的有序树是二叉树?
3 具有三个结点的树可以有几种形态?
【补充】二叉树与树和森林之间的转换。
三、二叉树的存储结构
1、二叉树的顺序存储结构(根据完全二叉树的性质6)
结论:顺序存储结构比较适合满二叉树,或者接近于满二叉树的完全二叉树,对于一些称为“退化二叉树”的二叉树,顺序存储结构的空间开销浪费的缺点表现比较突出。
2、二叉树的链式存储结构
typedef struct node
{
datatypedata;
structnode *lchild, *rchild;
}BTNode, *BTREE;
四、二叉树的遍历
前序遍历DLR、中序遍历LDR、后序遍历LRD、层次遍历。
五、二叉排序树
二叉排序树或者为空二叉树, 或者为具有以下性质的二叉树:
若根结点的左子树不空, 则左子树上所有结点的值都小于根结点的值;
若根结点的右子树不空, 则右子树上所有结点的值都大于或等于根结点的值;
递归定义:每一棵子树分别也是二叉排序树。
建立(插入)、查找算法。
平均查找长度ASL —— 确定一个元素在树中位置所需要进行的元素间的比较次数的期望值(平均值)。
- 数据结构笔记之树与二叉树
- 《数据结构》 第五章 树与二叉树之 笔记
- 【数据结构笔记】三、树与二叉树
- 数据结构学习笔记之二叉树
- 数据结构学习笔记之二叉树
- 数据结构之树与二叉树
- 数据结构之树与二叉树
- 数据结构与算法之二叉树遍历
- 数据结构之二叉树创建与遍历
- 数据结构与算法之二叉树
- 算法与数据结构之二叉树
- 数据结构之红黑树与平衡二叉树
- 数据结构与算法之二叉树
- 数据结构与算法04 之二叉树
- 数据结构与算法之二叉树
- <数据结构与算法>之二叉查找树
- 数据结构与算法之八(二叉树)
- 数据结构之二叉树
- ThinkPHP 3.2.3 使用 Swift Mailer 邮件系统发送邮件
- David Silver强化学习课程笔记(四)
- NOIP 冲刺 模板:树的直径
- 基于 Anaconda3 5.0.0 JupyterLab 0.27.0 使用 ftplib 演示 IPv4 和 IPv6 上传文件和下载文件
- 1011 最大公约数GCD——51Nod(__gcd() )
- 数据结构笔记之树与二叉树
- 机器学习(周志华)习题3.3
- RTSP协议分析
- java中HashMap排序中实现Comparator接口
- 数据库存储过程
- python下载及安装
- 怎样连接Redis数据库
- HashMap从源码角度分析遍历过程
- 项目拆分