Huffman树与Huffman编码

问题描述

已知某系统在通信联络中只可能出现6种字符,其使用频度如下表所示:

根据Huffman编码原理,为6种字符设计一种Huffman编码方案。

算法分析与设计

(1)Huffman算法

①根据给定的n个权值{w1,w2,…,wn}构造n棵二叉树的集合F={T1,T2,…,Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树均空。
②在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和。
③在F中删除这两棵树,同时将新得到的二叉树加入F中。
④重复②、③,直到F中只含一棵树为止。这棵树便是Huffman树。

(2)求Huffman编码算法

①根据给定的一组权值构造一棵Huffman树,由此得到的二进制前缀便为Huffman编码。由于Huffman树没有度为1的结点,则一棵有n个叶子结点的Huffman树共有2n-1个结点,设计一个结构数组,存储2n-1个结点的值,包括结点值、权重、父结点、左孩子和右孩子等。
②根据第1步构造出的Huffman树,求出每一个字符的Huffman编码,数据保存在一个字符串数组中。其方法是,从每一个叶子结点出发向根结点搜索,若遇左分支代码取’0’,若遇右分支

Huffman树与Huffman编码相关推荐

  1. huffman树和huffman编码

    不知道为什么,我写的代码都是又臭又长. 直接上代码: #include <iostream> #include <cstdarg> using namespace std; c ...

  2. 数据结构实验三:Huffman树及Huffman编码的算法实现

    Exp03 Huffman树及Huffman编码的算法实现 Author: Maskros 实验目的 了解该树的应用实例,熟悉掌握Huffman树的构造方法及Huffman编码的应用, 了解Huffm ...

  3. 利用Huffman树进行文本编码解码的实现

    --------------------------------- 功能:利用Huffman树进行文本编码解码的实现 环境:WinXP,VC6.0 输入:C:\\in.txt 输出:C:\\out.d ...

  4. [源码和文档分享]C语言实现的基于Huffman哈夫曼编码的数据压缩与解压缩

    一.实验题目 用哈夫曼编码实现文件压缩 二.实验目的 了解文件的概念 掌握线性链表的插入.删除等算法 掌握Huffman树的概念及构造方法 掌握二叉树的存储结构及遍历算法 利用Huffman树及Huf ...

  5. Huffman树压缩和解压文件

    Huffman树 Huffman树:以静态三叉链的存储结构建立的二叉树 Huffman树是一个带权路径长度最小的二叉树,又称最优二叉树 Huffman树的构造方法 ①将每个结点都看作是一个树: ②选择 ...

  6. 数据结构入门----赫夫曼Huffman树及其应用

    最优二叉树(霍.赫.哈夫曼树) 路    径: 由一结点到另一结点间的分支所构成. 路径长度: 路径上的分支数目.a→e的路径长度=2 树的路径长度: 从树根到每一结点的路径长度之和.树长度=10 带 ...

  7. Huffman树的原理以及代码构建

    我们的目标认识只是基础,代码实现是才是核心 1.Huffman树的定义: 从树中一个结点到另一个结点的之间的分支构成两个结点之间的路径,路径上的分支数称为路径长度.那么树的路径长度就是从树根到每一个结 ...

  8. Fibonacci数列 Huffman树

    Fibonacci数列 for k = 1:6k = int16(k);fprintf('f%d = %d\n', k, Fibonacci(k)); endfunction fk = Fibonac ...

  9. 基于Huffman树的文件压缩(详细)

    文件压缩 开发平台:Visual Studio 2008 开发技术:哈夫曼树,堆排序 项目流程: (1)统计要压缩的文件中各字符出现的次数,利用数据结构中的小堆来构建Huffman树,每次在堆顶选出两 ...

最新文章

  1. pandas使用max函数和min函数计算dataframe日期(时间)数据列中最大日期和最小日期对应的数据行(maximum and minimum date or time row)
  2. shell字符串的处理
  3. Hyperledger Fabric 核心模块(4)orderer 共识
  4. es 指定排序字段_ES里多字段分组后排序
  5. MySQL 5.7 主从复制配置
  6. Smack 4.3.4 API
  7. Servlet教程第5讲笔记
  8. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_12-webpack研究-webpack安装
  9. 【男人必看十大经典】[经典合集][DVD-Rmvb/7.70GB] 【原音中文字幕】已测
  10. 【大数据24小时】“天智一号”卫星将在太空计算数据;“电子身份证”亮相支付宝
  11. 一洽客服平台的技术生产力
  12. 大数运算:Barrett And Montgomery
  13. SAP MM供应商主数据
  14. 关于win10微软商店打不开的99%解决办法
  15. 输入汉语星期几输出英文c语言程序,C根据英文星期获取对应汉字或数字的星期函数(1)...
  16. VisionMobile:Apple和三星利润的秘诀
  17. 微信小程序外卖平台,免费下载小程序外卖源代码
  18. 物联网模块跨阵M1控制LED
  19. python pip 连接超时,使用国内源下载
  20. PyCharm调试时一直显示collecting data

热门文章

  1. rk809-code喇叭耳机调试分享
  2. 消息完整性和哈希函数 哈希碰撞与生日攻击 HMAC (Message Integrity and Hash Function)
  3. python dropna()用法
  4. 【Matlab】最小二乘法拟合多项式
  5. 不使用第三变量交换两个变量的值
  6. Android:Loading 动画——竜人の剣を喰え
  7. 记一次破解自己win10登录密码的经历
  8. 多位点序列分型_多位点序列分型(MLST)在艾伯特埃希菌鉴定中的应用
  9. 使用微信小程序设计表格
  10. 华测服务器进不去系统,华测网络数据查询系统