荷马史诗 题意:给n个单词出现的次数,然后给个k,让这个单词转换为二进制,然后求总长度最小,以及最大的一个转换后字符串的长度。 题解:我们发现这道题目,要求我们算出哈夫曼编码,也就是最短不重叠前缀的编码,那么我们就可以用上trie字典树的性质配合哈夫曼树进行处理. ...
分类:
其他好文 时间:
2019-08-01 00:06:13
阅读次数:
98
今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用。 !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点。 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程。、 首先,我先假设你已经有了二叉树的相关知识,主要就是概念和遍历方式这些点。如果没有这些知识储备, ...
分类:
编程语言 时间:
2019-06-24 22:43:25
阅读次数:
143
#include #define n 5 //叶子数目 #define m (2*n-1) //结点总数 #define maxval 10000.0 #define maxsize 100 //哈夫曼编码的最大位数 typedef struct { char ch; float weight; i... ...
分类:
其他好文 时间:
2019-06-12 23:06:13
阅读次数:
106
哈夫曼编码译码系统的实现,主要包含三部分: 1、创建哈夫曼树 2、编码函数 3、译码函数 编写代码时为了方便,在这里混用了c++的输入输出流。主体用c语言实现。 下面时代码部分: 1、头文件,以及储存结构: 2、哈夫曼树的创建,Ht储存全部节点的权值,n代表叶子节点数量。 3、编码译码函数、主函数: ...
分类:
编程语言 时间:
2019-06-03 21:57:24
阅读次数:
152
本程序只支持ASCII码, 文件均为英文文档 ...
分类:
其他好文 时间:
2019-05-20 13:09:30
阅读次数:
93
描述 当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。 现给定若干权值,请构建一棵哈夫曼树,并输出各个权值对应的哈夫曼编码长度。 哈夫曼树中的结点定义如下: //哈夫曼树结点结构 t ...
分类:
其他好文 时间:
2019-05-09 22:02:18
阅读次数:
138
本章主要学习了树和二叉树相关知识,包括二叉树的性质和存储结构(双亲表示法、孩子表示法、孩子兄弟法),二叉树的前、中、后序遍历算法等,还了解了哈夫曼树和哈夫曼编码的构造方法,以及森林与二叉树之间的相互转换方法。 实验课老师带领我们做了“深入虎穴”这道题: 7-2 深入虎穴 (30 分) 7-2 深入虎 ...
分类:
其他好文 时间:
2019-05-05 01:04:52
阅读次数:
175
//由于编译器版本原因strcpy出现不安全原因,导致无法运行,后使用strcpy_s给予拷贝长度得到解决;把“==”写成“=”导致报错;/*输入字符串统计字符个数(权值)int CreateWeightArray(char* str, int* Array) { //初始化权值数组,128为str ...
分类:
编程语言 时间:
2019-05-02 11:52:16
阅读次数:
296
答案是A,C, 要先画哈夫曼树, 总结一下, 哈夫曼编码树, 和哈夫曼树还是有点区别. 哈夫曼树的左右节点大小好像没关系(视频里听了一句), 编码树都可以左节点要小值. ...
分类:
其他好文 时间:
2019-04-29 21:03:35
阅读次数:
128
这一章主要讲的是文件的压缩。文件是将数据存储在磁盘等存储媒介中的一种形式,程序文件中存储数据的单位是字节,文件就是字节数据的结合。 还有讲了RLE算法,图像文件本质上也是字节数据的结合体,还有就是,RLE不适合文本文件的压缩。 还有就是哈夫曼算法,哈夫曼算法是指,为各压缩对象文件分别构造最佳的编码体 ...
分类:
其他好文 时间:
2019-03-23 22:47:58
阅读次数:
151