描述 当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。 现给定若干权值,请构建一棵哈夫曼树,并输出各个权值对应的哈夫曼编码长度。 哈夫曼树中的结点定义如下: //哈夫曼树结点结构 t ...
分类:
其他好文 时间:
2019-05-09 22:02:18
阅读次数:
138
说在前头 该项目的所有代码上传在 "GitHub" 可以实现的功能 1. 对26个大写英文字母及空格进行赫夫曼编码 2. 通过第一点所述功能加上tornado实现简单的在线密码对话聊天(更多的tornado知识我会在后续更新) 3. 另外,有什么不足的地方欢迎评论 介绍 该程序的主要核心文件为huf ...
分类:
其他好文 时间:
2018-12-01 16:01:26
阅读次数:
180
贪心算法主要采用局部最优的解决问题的策略,但是在很多时候都不能达到全局最优的效果,那么什么时候使用贪心算法能够得到全局最优呢?就此引出拟阵的概念。 贪心算法的一般步骤 确定待解问题的最优子结构 设计递归求解方式 证明在递归的任一阶段,最优选择之一总是贪心的(那么贪心选择是最适合的) 证明通过做贪心选 ...
分类:
编程语言 时间:
2018-10-07 13:00:15
阅读次数:
200
#include #include #include #ifndef MACRO_//宏 #define MACRO_ #define OK 1 #define FALSE 0 #define ERROR 0 #define TURE 1 #define OVERFLOW -2 #define IN... ...
分类:
其他好文 时间:
2018-09-06 00:10:13
阅读次数:
192
赫夫曼树以下程序在效率上有什么问题?上述代码的流程图:如果我们把判断流程改成下面的样子,大家思考一下,比起上一种哪个好点?赫夫曼树的定义与原理:我们先把这两颗二叉树简化成为叶子节点带权的二叉树。注:树节点间的连线相关的数叫做权。节点的路劲长度:——从根节点到该节点的路径上的连线数。树的路径长度:——树中每一个叶子节点的路径长度之和。节点带权路径长度:——节点的路径长度与该节点权值的乘积。树的带权路
分类:
其他好文 时间:
2018-06-05 23:27:44
阅读次数:
301
代码复审 代码审查表 功能模块名称 生成哈夫曼树 审查人 周磊 审查日期 2018.04.06 代码名称 设计赫夫曼编码 代码作者 王屹超 文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 是 头文件和定义文件的目录结构是否合理? 是 版权和版本声明是否完整? 否 重要 头文件是否使 ...
分类:
其他好文 时间:
2018-04-06 23:55:03
阅读次数:
306
这周先是huffman code,这东西是一种对数据进行二进制编码的方式,这样子编码可以压缩空间,算是一种压缩算法。比如一串数据里只有a,b,c,d四个字节,一般可能会觉得就00,01,10,11来指代这四个了,然而这里可能a出现的概率超过60%,其余三个都是百分之十几,那么像0,10,110,11 ...
分类:
其他好文 时间:
2018-03-03 00:36:33
阅读次数:
138
1. 问题描述 利用赫夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站编写一个赫夫曼码的编 ...
分类:
其他好文 时间:
2017-12-23 15:53:10
阅读次数:
184
【1】赫夫曼树基本概念 别名“最优树”,是一种带权路径最短的树。 (1)路径:从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 (2)路径长度:路径上的分支数目。 (3)树的路径长度:从树根到一每结点的路径长度之和。 (4)结点的带权路径长度:从该结点到树根之间的路径长度与结点上权值的 ...
分类:
其他好文 时间:
2017-12-05 13:16:05
阅读次数:
108
P203:树的带权路径长度为树中所有叶子结点的带权路径长度之和。 P203:带权路径长度WPL最小的二叉树称做赫夫曼树。 ...
分类:
其他好文 时间:
2017-11-19 15:41:24
阅读次数:
100