它是由n个带权叶子结点构成的所有二叉树中带权路径长度最短的二叉树。因为这种树最早由哈夫曼(Huffman)研究,所以称为哈夫曼树,又叫最优二叉树。...
分类:
其他好文 时间:
2016-05-13 03:57:10
阅读次数:
188
哈夫曼树的基本概念 哈夫曼树(Huffman Tree),又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树。 (1)路劲(Path):从树中的一个结点到另一个结点之间的分支构成两个结点间的路径。 (2)路径长度(Path Length):路径上的分支树。 (3)树的 ...
分类:
其他好文 时间:
2016-05-07 06:28:40
阅读次数:
284
经过了一周的学习,我们在html以及C语言方面又有的新的知识点的学习。 html 自习表格,函数等 C语言 哈弗曼编码 Html案例: 一. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
分类:
其他好文 时间:
2016-05-05 22:21:40
阅读次数:
239
文件压缩主要有两个好处,一是减少了存储文件所占空间,另一个就是为数据传输提速。在hadoop大数据的背景下,这两点尤为重要,那么我现在就先来了解一下hadoop的文件压缩。 Hadoop里支持很多种压缩格式,看下表: DEFLATE是同时使用了LZ77算法与哈弗曼编码(Huffman Coding)
分类:
其他好文 时间:
2016-01-31 21:29:35
阅读次数:
320
设计一个哈弗曼编码和译码系统, 要求如下:
B——建树:读入字符集和各字符频度,建立哈夫曼树。
T——遍历:先序和中序遍历二叉树。
E——生成编码:根据已建成的哈夫曼树,产生各个字符的哈夫曼编码。
C——编码:输入由字符集中字符组成的任意字符串,利用已生成的哈夫曼编码进行编码,显示编码结果,并将输入的字符串及其编码结果分别保存在磁盘文件textfile.txt和code...
分类:
其他好文 时间:
2015-11-03 00:45:37
阅读次数:
256
# coding: utf-8#Tree-Node Typeclass Node: def __init__(self,freq): self.left = None self.right = None self.father = None ...
分类:
编程语言 时间:
2015-09-04 18:17:05
阅读次数:
344
贪婪算法分阶段的工作。在每一个阶段,就认为在这个阶段所做的决定是最好的。该算法终止的时候,我们希望局部最优就是全局最优。 NP完全的意思是算法的复杂度可以用多项式来表示。 哈弗曼编码: tri树 前缀码,如果一个字符放在非树叶结点上,那就不再额能够保证译码没有二义性。
分类:
编程语言 时间:
2015-09-03 12:41:26
阅读次数:
157
二叉树的基本概念
关于二叉树有一点需要注意:二叉树并不是树的一种特殊形式,二叉树时有序树。
二叉树又有几种特殊的形式:最优二叉树(哈弗曼树)、二叉排序树(二叉查找树)、二叉堆。
哈弗曼树的特点就是带权路径长度最小,因此还叫最优二叉树。另外,哈弗曼树是完全二叉树。
二叉排序树它或者是一棵空树;或者是具有下列性质的二叉树:
1,若左子树不空,则左子树上所有结点的...
分类:
其他好文 时间:
2015-08-20 19:04:30
阅读次数:
130
建立哈弗曼树要求我们每次都选频率权值最小的点构成节点,即权值小的点在树的深处,权值大的点在树的浅处,根据节点选择的特点,我们可以把节点的值放在优先队列中,包括新形成的节点。我们先定义优先队列的优先级别。1 struct cmp2 {3 bool operator()(const int &a,...
分类:
其他好文 时间:
2015-08-06 00:00:29
阅读次数:
373
这道题我一开始想错了,这么简单的题都wa了两发。。。我往贪心上面想了,每次都找一个最小的数相加,结果就是
排序后直接往后加,还在那纳闷为何出错。。。其实这道题是哈弗曼编码问题,简直是模板题目,就是每次找两个最
小的结点求和后把他们的和放到节点中去,把这两个点删除。。。用的multiset,其实和set容器差不多,就是可
以存放重复的元素。。。
代码:
#include
#include
...
分类:
其他好文 时间:
2015-08-05 22:31:00
阅读次数:
107