二叉树的概念和代码实现

目录

一:什么是树

二:树的基本术语

三 :二叉树

二叉树的定义:

 三:数和二叉树的抽象数据类型定义

四:二叉树的性质

 五:两种特殊的二叉树

六:二叉树的顺序存储表示

 七:链式存储结构

 八:遍历二叉树和线索二叉树

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步

代码:先初始化 后构造

 然后构造

 

 实例:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值