树的基本性质
- 路径:一般是只有从上往下的路径
- 结点数 = 总度数 +1
- 度为m的树,一定有有一个结点有m个子树
二叉树的定义和性质
一般是用完全二叉树来定义的
注意子树和父节点的关系
完全二叉树只有倒数第一,二层会有叶子结点
n1的结点只能为1or0
如果二叉树是采用顺序存储,一定要将空的位置也要留下来,这样就可以根据编号找到父子结点
二叉树的遍历
根据遍历序列恢复二叉树;
前中后序遍历 表达式 会得到对应的表达式
层序遍历需要辅助队列
二叉排序树
左 < 根 < 右
二叉排序树插入又删除形态会发生改变
查找次数是比对的次数
平衡二叉树
LL:最小不平衡子树的左节点成爹
RR:最小子树的右节点成爹
LR:最小子树的左孩子的右节点成爹
RL:最小子树的右节点的左孩子成爹
森林、树、二叉树的转换
关键就是孩子兄弟表示法
对森林的遍历关键就是对森林的后序/中序遍历就是对相应的中序遍历
线索二叉树
关键是左指针指向前驱,右指针指向后继
哈夫曼树和哈夫曼编码
带权路径长度只计算叶子结点的
多插哈夫曼树,需要构造虚段,k-1%n-1 正好是0
因为是22组合,所以会构建n-1个结点,不存在n1的结点;哈夫曼树的形态不唯一,但WPL是唯一的