4.3.3 最优二叉树+二叉查找树

文章目录

基本概念

最优二叉树=哈夫曼树

哈夫曼树:带权路径长度最短的树。

路径:一个结点到另一个结点的通路。

路径长度:路径上的分支数量。

树的路径长度:根到每个叶子结点路径长度之和。

结点带权路径长度:结点到根的路径长度乘以结点权值。

树的带权路径长度:所有叶子结点带权路径长度之和。

哈夫曼方法

① 将n个权值转换成n棵二叉树的根结点,二叉树的集合为F。

② F中根结点权值最小的2棵树X, Y,组成新树Z的左、右子树,根结点为左右子树权值之和。

③ 删除F中X,Y这2棵树,新树Z加入F。

重复②和③,直至F中剩下1颗树,这就是哈夫曼树。

应用:通信编码译码

字符和权值用哈夫曼方法形成哈夫曼树,树的左分支标0,右分支标1。根到叶子路径的01字符串就是字符的编码。

helloworld的编码为

0000 0001 001 001 100 101 100 01 001 11

译码时,按照01字符串的顺序,从哈夫曼树的根结点开始读取,找到叶子结点,就返回对应字符。然后回到根结点,继续寻找,直至01字符串读取完毕。

二叉查找树

二叉查找树=二叉排序树=二叉检索树

具有3个性质:

  • 左树所有结点的值均小于根结点
  • 右树所有节点的值均大于根节点
  • 左、右子树也是二叉查找树

二叉查找树中序遍历,可以得到递增序列。

相关推荐
kkeeper~7 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
2401_868534788 小时前
论企业网络设计
数据结构
鹏北海-RemHusband8 小时前
Go 语言进阶笔记 — 面向 JS/TS 前端开发者
笔记·golang
wabs6668 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_876964139 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
嗝o゚9 小时前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本9 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
nnsix10 小时前
Unity QFramework ResKit、UIKit 笔记
笔记
摇滚侠11 小时前
Java 零基础全套教程,反射机制,笔记 187-188
java·开发语言·笔记
Ulyanov11 小时前
用声明式语法重新定义Python桌面UI:QML+PySide6现代开发入门(一)
开发语言·python·算法·ui·系统仿真·雷达电子对抗仿真