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个性质:

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

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

相关推荐
一隅论数智5 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
倒头就睡的小比特5 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼5 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
m0_547486665 天前
《数据结构教程》全套 PPT课件2026
数据结构
深圳老胡5 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
旖旎夜光5 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark5 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her15 天前
并查集-听课笔记
笔记·算法·并查集
码流子5 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构