根据下面给定的字母和权重建立Huffman编码树,并给出各个字母的代码。

(A,2)(B,3)(C,5)(D,7)(E,11)(F,13)(G,17)

(H,19)(I,23)(J,31)(K,37)(L,41)

分析:

给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。

哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

构建哈夫曼树:

(1)将每一个字母构造成单个树,然后构造树集合,即:

{ (A,2)(B,3)(C,5)(D,7)(E,11)(F,13)(G,17)

(H,19)(I,23)(J,31)(K,37)(L,41)}

(2)找到权重最小的两个字母,构造一个树,即:

如果集合中已经存在相同权重的字母,可以作为左子树,建立新的树

 

HNU数据结构哈夫曼树建立相关推荐

  1. 【数据结构——哈夫曼树及其应用】

    [数据结构--哈夫曼树及其应用] 一.哈夫曼树的基本概念 二.哈夫曼树的构造算法 (一)哈夫曼树的构造过程 (二)哈夫曼树构造算法的实现 1.初始化 2.创建树 3.完整的创建哈夫曼树代码 三.哈夫曼 ...

  2. 数据结构---哈夫曼树

    数据结构-哈夫曼树 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> #define N 100 #define INF ...

  3. 数据结构哈夫曼树实现26个英文字符的编码和译码

    数据结构哈夫曼树实现26英文字符的编码和译码 那么首先什么是哈夫曼树?(知道的略过,直奔下面代码就好!) 在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编 ...

  4. 数据结构--赫夫曼树

    数据结构 –赫夫曼树 文章目录 数据结构 一.一些概念 二.最优二叉树(赫夫曼树) 三.赫夫曼树的构造 四.赫夫曼编码 五.前缀编码 一.一些概念 路径:从树中一个结点到另一个结点之间的分支构成这两个 ...

  5. 赫夫曼树建立c语言源程序编译结果详细解释,哈夫曼树的建立与实现最终版(备份存档)...

    <哈夫曼树的建立与实现.doc>由会员分享,可免费在线阅读全文,更多与<哈夫曼树的建立与实现(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索 ...

  6. 赫夫曼树建立c语言源程序编译结果详细解释,c语言构建哈夫曼树(附运行结果图)[本站推荐]...

    #include#include#include int m,s1,s2; typedef struct { unsigned int weight; unsigned int parent,lchi ...

  7. 哈夫曼树建立与二叉树WPL算法以及相关例题

    目录 哈夫曼树静态数组形式建立 哈夫曼树二叉链表形式建立 求WPL 哈夫曼树编码解码 更新 哈夫曼树的建立有两种方式,一种是通过静态数组的方式来建立(这种方式比较简洁明了好理解),由于不想篇幅太长了, ...

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

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

  9. 数据结构--赫夫曼树及其应用

    讲解请参考 赫夫曼 ------ 赫夫曼树和赫夫曼编码的存储表示------ typedef struct {unsigned int weight;unsigned int parent,lchil ...

最新文章

  1. 浅析网站维护优化的必要性!
  2. 微信小程序开发3——事件处理
  3. Build Docker image of a Python Flask app【转载】
  4. 会导致所有者权益减少的项目是_处置固定资产而发生的净损失为什么会导致所有者权益减少...
  5. 河北职称计算机Excel一,2012年河北省职称计算机Excel操作练习一.doc
  6. 分享memcache和memcached安装过程(转)
  7. win10 解决升级 WordPress 时提示”另一更新正在进行”
  8. 编写一个java打印心程序_java – ?同时打印心脏符号
  9. LINUX mount -t用法
  10. 如何让我的mfc应用程序可以在最上面?
  11. xcode--常用快捷键
  12. jquery 处理json字符串
  13. Python 调度算法 死锁 静动态链接 分页分段(七)
  14. 经济学有必要学python吗_学习经济学用啥软件
  15. 红巨星粒子Red Giant Trapcode Suite
  16. 通过mysql修改后台密码_怎么通过修改数据库修改网站后台的管理员密码?
  17. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》导读
  18. 20170627总结
  19. 有趣的程序代码c语言,一个有趣的小程序
  20. 泰勒级数定义及相关展开式

热门文章

  1. .Net/C#: 一个将在线简体中文网页转为繁体中文页简单方法
  2. MATLAB 动态规划
  3. 【HTML】元素的 alt 和 title 有什么区别?
  4. 生活小剧场30天吸粉44w,小红书最受欢迎的笔记长这样
  5. 知道文件扩展名,如何获得在系统中该文件类型的图标
  6. (附超声射频数据)matlab实现b超原始信号数据生成图像
  7. 转载:CAN:CAN矩阵、CAN网络、DBC、MDF关系
  8. 从两句偈语开始写的一首诗《看花》,以及创造思路、过程
  9. layui镜像网站分享
  10. canvas内的字体实现阴影效果