目录
一:什么是树
二:树的基本术语
三 :二叉树
二叉树的定义:
三:数和二叉树的抽象数据类型定义
四:二叉树的性质
五:两种特殊的二叉树
六:二叉树的顺序存储表示
七:链式存储结构
八:遍历二叉树和线索二叉树
8.1算法实现: 利用递归
利用栈编辑
利用队列编辑
层次遍历
九:二叉树遍历算法的应用
1:建立二叉树编辑
2:复制二叉树
3计算二叉树深度
4:计算总结点个数
5:计算叶子结点个数
十:线索二叉树(省略)
十一:树和森林
树是什么?
1 树的存储结构 -双亲表示法
2 树的存储结构 孩子链表
3:带双亲的孩子链表
4:孩子兄弟表示法
11.1:树和森林 二叉树 树 森林
1:树 -> 二叉树编辑
2:二叉树变树
3:森林变为二插树
4:二叉树变为森林
11.2 树和森林的遍历
1:先序遍历实例
2:中序遍历(类似后跟)
十二:哈夫曼树
12.1 哈夫曼树的概念
哈夫曼树 的特点:编辑
12.2 哈夫曼树的构造方法
12.2.2 实例:
12.3 哈夫曼树构造算法的实现
一:什么是树
2:树的定义
那么 从直观上来看
二:树的基本术语
各种不同的树 :
三 :二叉树
1:为啥要研究二叉树而不是树?
二叉树的定义:
注意:二叉树和树
三:数和二叉树的抽象数据类型定义
四:二叉树的性质
五:两种特殊的二叉树
归纳法证明
六:二叉树的顺序存储表示
七:链式存储结构
八:遍历二叉树和线索二叉树
8.1算法实现: 利用递归
利用栈
利用队列
层次遍历
九:二叉树遍历算法的应用
1:建立二叉树
代码
2:复制二叉树
3计算二叉树深度
4:计算总结点个数
5:计算叶子结点个数
十:线索二叉树(省略)
十一:树和森林
树是什么?
1 树的存储结构 -双亲表示法
2 树的存储结构 孩子链表
3:带双亲的孩子链表
4:孩子兄弟表示法
向右的都是兄弟 都是谁儿子?
11.1:树和森林 二叉树 树 森林
1:树 -> 二叉树
为啥要旋转 ?好看!
2:二叉树变树
我的口诀:向右的都是兄弟 ,兄弟断线 找父母
左孩右右连双亲,
去掉原来右孩线。
3:森林变为二插树
实例:
4:二叉树变为森林
11.2 树和森林的遍历
1:先序遍历实例
2:中序遍历(类似后跟)
十二:哈夫曼树
引入:
怎么设计比较过程使得 路程最小
12.1 哈夫曼树的概念
哈夫曼树 的特点:
是完全二叉树 带权路径长度最短
12.2 哈夫曼树的构造方法
why? 1 :构造了新的n-1个结点 2:都是2个结点造新树
12.2.2 实例:
12.3 哈夫曼树构造算法的实现
第一步:构造森林全是根 (2n-1个根)
第二步:选择两小造新树
第三步:删除量小添新人 (√)
第四步:重复2,3步
代码:先初始化 后构造
然后构造
实例:



