文章目录
5 树与二叉树
5.1_1 树的定义和基本术语
1.树的基本概念
树的每一个结点除根节点外有且只有一个前驱
2.基本术语
祖先结点
子孙结点
双亲结点
孩子结点
兄弟结点
堂兄弟结点
结点的层次 (深度)默认从1开始
结点的高度 从下往上数
结点的度 有几个分支
树的度 各结点的度的最大值
有序树
无序树
森林 不通
3 小结
5.1_2树的常考性质
结点数=总度数+1
m叉树-每个结点最多只能有m个孩子的树
度为m的树至多有m的i-1次方个结点
5.2_1二叉树的定义和基本术语
1.二叉树的基本概念
1或为空二叉树
2 或者只有左子树,右子树 只有跟结点
特殊二叉树
满二叉树
完全二叉树
二叉排序树。
左子树上所有结点的关键字均小于根节点的关键值
右子树上所有结点的关键字均大于根节点的关键值
平衡二叉树
数上任一结点的左子树和右子树的深度只差不超过1
2.小结
5.2_2 二叉树的性质
5.2_3 二叉树的存储结构
1.二叉树的顺序存储![在这里插入图片描述](https://img-blog.csdnimg.cn/b04821ce64e64f0ebea71b1d60afa2a8.png
2.二叉树的链式存储
5.3_1 二叉树的先中后序遍历
1.二叉树的遍历
先序遍历:根左右 NLR 前缀表达式
中序遍历: 左跟右LNR 中缀表达式 需要加界限符
后序遍历:左右跟 LRN 后缀表达式
5.3_2 二叉树的层次遍历
5.3_3 由遍历序列构造二叉树
只有一个遍历序列不能唯一确定一棵二叉树
层序遍历+中序遍历
如果没有中序遍历,其它的两两结合无法唯一确认二叉树。
5.3_4 线索二叉树的概念
线索二叉树的是用来找结点前驱后继的,左结点指向前驱,右结点指向后继
线索二叉树的存储结构
5.3_5 二叉树的线索化
中序线索化
5.3_6 在线索二叉树中找前驱后继
中序线索二叉树
找指定结点p前驱,p的左子树中最右下结点
找指定结点p后继,p的右子树中的最左边一个
先序线索二叉树
找指定结点p前驱,找不到前驱
找指定结点p后继,p的右子树中的最左边一个
后序先说二叉树
找指定结点p前驱
找指定结点p后继,找不到
5.4_1 树的存储结构
双亲表示法
孩子表示法
孩子兄弟表示法
森林和二叉树的转换
5.4_2 树和森林的遍历
树的先根遍历对应的二叉树的先序遍历
森林的先序遍历对应二叉树的先序遍历
5.5_1 哈夫曼树
5.5_2 并查集
5.5_3 并查集的进一步优化