例题:
假设一个文本文件TFile中只包含7个字符{A,B,C,D,E,F,G},这7个字符在文本中出现的次数为{5,24,7,17,34,5,13}
利用哈夫曼树可以为文件TFile构造出符合前缀编码要求的不等长编码。
具体做法:
1. 将TFile中7个字符都作为叶子结点,每个字符出现次数作为该叶子结点的权值
2. 规定哈夫曼树中所有左分支表示字符0,所有右分支表示字符1,将依次从根结点到每个叶子结点所经过的分支的二进制位的序列作为该
结点对应的字符编码
3. 由于从根结点到任何一个叶子结点都不可能经过其他叶子,这种编码一定是前缀编码,哈夫曼树的带权路径长度正好是文件TFile编码
的总长度
通过哈夫曼树来构造的编码称为哈夫曼编码(huffman code)

转载于:https://www.cnblogs.com/iloverain/p/5767545.html

数据结构之哈夫曼编码相关推荐

  1. 【数据结构】哈夫曼编码与最优二叉树(哈夫曼树)

    一.为什么要用哈夫曼编码 在进行大容量存储.图像压缩等数据交换的时候,如果文件过大,恰好WIFI又不怎么快,你是不是会觉得十分暴躁呀?比如有这样一串数据需要传输: 上面就有100位二进制数,这还只是数 ...

  2. 霍夫曼编码PHP,数据结构:哈夫曼编码(php版)

    概述下: 哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩. 在计算机信息处理中,"哈夫曼编码"是一种一致性编码法(又称"熵编码法"),用于 ...

  3. 数据结构实验——哈夫曼编码

    目录 问题描述 基本要求 问题分析 实验代码 运行结果 实验总结 问题描述 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本.但是,这要求在发送端通过一个编码系统对待传数据 ...

  4. 【数据结构】哈夫曼编码和树

    新知识: 转载博客:http://blog.163.com/sdnu_et/blog/static/13184636920100574953335/ 哈夫曼树:建一棵树,使每个叶子节点的点权与深度的乘 ...

  5. 【数据结构】哈夫曼树与哈夫曼编码

    定义 带权路径长度(WPL):设二叉树有n个叶子结点,每个叶子结点带有权值wkw_kwk​,从根节点到每个叶子结点的长度为lkl_klk​,则每个叶子结点的带权路径长度之和就是:WPLWPLWPL=∑ ...

  6. 数据结构题:根据所给权值设计相应的哈夫曼树,并设计哈夫曼编码

    文章目录 前言 一.涉及到的知识点 二.例题讲解 1.例题1 2.例题2 总结 前言 在数据结构树的这章中,常常有题目,是这样的"给定一组权值-,试设计相应的哈夫曼树",有的还要求 ...

  7. 数据结构(哈夫曼树,哈夫曼编码)入门篇,JAVA实现

    什么是哈夫曼树 哈夫曼树就是一种最优判定树,举个例子,如下一个判断逻辑 if(s<60) g=1; else if(s<70) g=2 else if(s<80) g=3 else ...

  8. 数据结构图文解析之:哈夫曼树与哈夫曼编码详解及C++模板实现

    0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...

  9. C语言霍夫曼编码压缩,数据结构大作业——哈夫曼编码压缩BMP格式文件

    数据结构大作业--哈夫曼编码压缩BMP格式文件 首先需要了解BMP图像格式 BMP图像格式详解 其次需要了解哈夫曼编码如何对BMP文件进行压缩 哈夫曼压缩与解压缩 编程部分 使用的头文件 虽然这里用了 ...

最新文章

  1. matlab处理图片建系,求MATLAB处理一张图片,把图片放入坐标系,建立类似于经纬度的网格...
  2. Eureka出现No instances available for xxx的五种解决方案(不能解决你骂我)
  3. 歌一定要带监听耳机吗_在演唱会上,歌手耳朵里戴的不是“耳机”,而是这个东西...
  4. 用EZBOOT制作多个gho文件的安装盘
  5. 华为系列设备ACL配置和应用常见问题
  6. 阿里云创新产品团队招聘!一大波岗位呼唤你
  7. 裁员潮下,工程师该何去何从?
  8. 2019计算机二级vb考试大纲,2019年全国计算机二级VB试题
  9. QThread: Destroyed while thread is still running 解决方法
  10. movieclip_Flash脚本-在Flash中更改Movieclip的颜色
  11. Unity开发VR项目(四)—— 创建VR场景
  12. pycharm 隐藏或显示文件类型
  13. 2019年8月21日 星期三(韩天峰的个人简历)
  14. obs弹幕助手android版,OBS Studio 使用全屏弹幕教程
  15. 从高亮到输出:如何用 Readwise 一站式优化你的阅读笔记流程?
  16. 计算机考试重点题目与答案
  17. JAVA初级工程师面试36问(一)
  18. 前后端分离-电商项目
  19. lenet5跑cifar_基于PaddlePaddle2.0-构建卷积网络模型LeNet-5
  20. 【转载】如何巧用IPD,建立完善的产品研发管理体系?

热门文章

  1. aic值检验 p值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?
  2. xcode 配置wechat_友盟微信、QQ等分享提示未验证应用配置
  3. 用python读取图像_如何用python获取图像
  4. android 日历_适用于Android的十大最佳日历应用
  5. java字符串字符排列组合_如何在Java中查找字符串的所有排列
  6. python zfill_Python字符串zfill()
  7. adalm pluto_Apache Pluto和PHP集成示例教程
  8. ROS的学习(二十)rosserial中的Publisher和Subscriber中的编程步骤
  9. 我是小白一个,如何快速学会C++?
  10. U盘做启动盘之后容量变小