树(二叉树+树+森林)
时间 2021-01-21
标签
数据结构笔记
二叉树
树
树的基本概念
- 树是一个n(n>=0)个结点的有序合集
- 结点:指树中的一个元素;
- 结点的度:指结点拥有的子树的个数,二叉树的度不大于2;
- 树的度:指树中的最大结点度数;
- 叶子:度为0的结点,也称为终端结点;
- 高度:叶子节点的高度为1,根节点高度最高;
- 层:根在第一层,以此类推;
- 节点的深度:从上到下
- 节点的高度:从下到上1
- 路径长度:经过的边的个数
- 森林:好多树,通常树去掉根结点就是森林
树的性质
- 树的结点数等于树中所有节点的度加1.
- 度为m的树中第i层的结点最多有m^(i-1)
- 高度为h的树结点最多为(m^n-1)/(m-1)
- 具有n个结点的m叉树高度最少为
二叉树
结点的度最多为2的树
- 满二叉树
- 完全二叉树
- 二叉排序树:左小于中,中小于右
- 平衡二叉树:左右子树深度差不超过1
性质
- 非空二叉树的叶子结点数等于度为2的结点数加1
- 非空二叉树第k层最多2^(k-1)结点
- 高度为h的二叉树至多有2^(h-1)结点
- 完全二叉树性质
存储结构
完全二叉树和满二叉树适合顺序存储,一般二叉树得加空结点
顺序存储空间利用率低,二叉树一般用链式存储
先中后层要有递归思想
线索二叉树
引入线索二叉树是为了像遍历单链表一样遍历二叉树,加快查找结点前驱和后继速率
线索链表
树与二叉树的应用
二叉排序树BST
左小于右
平衡二叉树
高度差不超过1
树和森林
存储结构
树、森林和二叉树转换
左孩子右兄弟
树的应用-并查集