【数据结构和算法笔记】哈夫曼树的概念,构造和应用(利用哈夫曼编码压缩文本)
目录
哈夫曼树定义:
构造哈夫曼树:
哈夫曼编码
前缀编码:
应用(压缩文本)
哈夫曼树定义:
构造哈夫曼树:
哈夫曼编码
前缀编码:
哈夫曼编码是前缀编码
哈夫曼树的性质
哈夫曼树的任意非叶结点的左右子树交换后仍是哈夫曼树
应用(压缩文本)
如果用000,001.,...111,表示字母A-H
有一串文本只含A-H,频率出现如下图
如果把出现次数当做叶子节点的权值构造哈夫曼树:
把字母的哈夫曼编码作为字母的编码
可以节约%10的内存空间
【数据结构和算法笔记】哈夫曼树的概念,构造和应用(利用哈夫曼编码压缩文本)相关推荐
- 数据结构与算法笔记(十三)—— 树与树的算法
一.树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构, 用来模拟具有树状结构性质的数据集合.它是由 n(n>=1)个有限节点组成一个具有层次关 系的集 ...
- 【数据结构和算法笔记】二叉树和树/森林的相互转换
- 算法学习笔记——数据结构:哈夫曼树、带权路径长度WPL、哈夫曼编码
引入 合并果子问题如下: 有n堆果子,每次可以合并任意两堆果子,耗费体力值为[两堆果子数之和],最终在n-1次合并后,得到一堆果子. 给出合并的方案,使得耗费的体力值最小 例如有3堆果子,质量依次为1 ...
- 《数据结构与算法》(十一)- 树、森林与二叉树的转换及哈夫曼树详解
目录 前言 1. 树.森林与二叉树之间的转换 1.1 树转换为二叉树 1.2. 森林转换为二叉树 1.3. 二叉树转换为树 1.4 二叉树转换为森林 1.5 树与森林的遍历 2. 哈夫曼树及其应用 2 ...
- (王道408考研数据结构)第五章树-第四节3:哈夫曼树基本概念、构造和哈夫曼编码
文章目录 一:哈夫曼树基本概念 (1)相关术语 (2)哈夫曼树定义 二:哈夫曼树的构造 三:哈夫曼树特点 四:哈夫曼树典型应用-哈夫曼编码 在计算机中, 文件压缩是一项非常重要的技术,它除了可以减少文 ...
- 数据结构与算法笔记(青岛大学王卓老师视频)
写在前面的话: 因为在学习数据结构之前,学习过一年的算法,所以有一些基础,一些我觉得 没必要的代码或知识就没写上,记得多是一些知识点,写的可能对于别人来说 很难接受,望谅解.我学习算法是在Acwing ...
- 数据结构和算法基础(4)——树
一.概念 1. 为什么需要树这种数据结构 ① 数组存储方式 优点:通过下标方式访问元素,速度快.对于有序数组可以通过二分查找提高检测速度. 缺点:如果要通过内容来查找元素的位置,或者插入删除值时,效率 ...
- 【尚硅谷】Java数据结构与算法笔记11 - 树结构的实际应用
文章目录 一.堆排序 1.1 堆排序基本介绍 1.2 堆排序的基本思想 1.3 堆排序步骤图解 1.4 堆排序思路总结 1.5 堆排序代码实现 二.赫夫曼树 2.1 基本介绍 2.2 重要概念 1.3 ...
- 数据结构与算法笔记(十六)—— 二叉搜索树
一.二叉搜索树定义 二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree). 二叉搜索树是具有有以下性质的二叉树: 若左子树不为空,则左子树上所有节点的 ...
最新文章
- 英语和数学不好可以学python-学习Python总是学了新内容又忘了旧的咋办?
- 四人团-江南行-乌镇东栅旅游
- python 中用什么键缩进 —— tab 还是空格?
- mysql 关联查询_Mysql查询优化器,再也不会因为该什么时候建立索引发愁了
- VMware 常见使用问题梳理
- python中的面向对象
- java中有序数组比无序数值好_java面向对象的有序数组和无序数组的比较
- ansible+Jenkins+supervisor(Jenkins守护进程)
- 事件对象使用方法大全(源码解析)
- ScrollMagic-jQuery元素滚动动画库插件
- 专技继续教育-使用tampermonkey刷课时(可自动跳转下一节)
- Oracle 11g 下载安装
- 高德地图缩放级别对应的比例尺
- 警示灯emark认证需要什么条件?
- pwntcha库的安装依赖
- linux奶瓶安装方法,ubuntu系统下怎么安装奶瓶
- Set集合:求交集、并集和差集
- 微博视频代发(流程b)
- 【程序厨】学习 Redis ,可以看看这个
- erdas叠加显示_利用erdas对遥感影像进行分类具体步骤