当前位置: 首页 > article >正文

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

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

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


http://www.kler.cn/a/501293.html

相关文章:

  • 面向对象分析与设计Python版 分析与设计概述
  • 欧拉公式和傅里叶变换
  • 基于 FastExcel 与消息队列高效生成及导入机构用户数据
  • 汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)
  • 基于Django的个性化餐饮管理系统
  • ARP-Batch-Retargeting 部署实战
  • 机器学习之支持向量机SVM及测试
  • WebGIS城市停水及影响范围可视化实践
  • k8s 安装ingress并配置flink服务
  • 《系统爆破:MD5易破,后台登录可爆破?》
  • KG-CoT:基于知识图谱的大语言模型问答的思维链提示
  • 青龙面板脚本开发指南:高效自动化任务的实现
  • 一学就废|Python基础碎片,文件读写
  • MySQL存储引擎、索引、索引失效
  • Django项目集成审计日志与界面美化
  • 基于Springboot + vue实现的购物推荐网站
  • 完整化安装kubesphere,ks-jenkins的状态一直为init
  • 深度解析统计学四大分布:Z、卡方、t 与 F 的关联与应用
  • vulhub earth靶场
  • 【Excel笔记_2】单元格跳转求累加
  • ros2笔记-5.3 C++中地图坐标系变换
  • 分享几个高清无水印国外视频素材网站
  • 【ASP.NET学习】ASP.NET MVC基本编程
  • 电脑提示directx错误导致玩不了游戏怎么办?dx出错的解决方法
  • Python差分
  • .NET | SCM权限维持在红队实战中的应用