哈夫曼算法原理Wikipedia上面说的非常清楚了,这里我就不再赘述,直接贴过来了。1952年, David A. Huffman提出了一个不同的算法,这个算法能够为不论什么的可能性提供出一个理想的树。香农-范诺编码(Shanno-Fano)是从树的根节点到叶子节点所进行的的编码,哈夫曼编码算法却是...
分类:
其他好文 时间:
2014-08-22 12:53:18
阅读次数:
308
哈夫曼算法原理Wikipedia上面说的非常清楚了,这里我就不再赘述,直接贴过来了。1952年, David A. Huffman提出了一个不同的算法,这个算法能够为不论什么的可能性提供出一个理想的树。香农-范诺编码(Shanno-Fano)是从树的根节点到叶子节点所进行的的编码,哈夫曼编码算法却是...
分类:
其他好文 时间:
2014-08-21 14:55:14
阅读次数:
278
优先队列实现完整哈夫曼树,一大段英文都是介绍哈夫曼树的。
外面用了一个pre来找parent,其实可以把这个项放入结构体中。
特别注意当有一个结点的情况不能用优先队列,另外判断下
#include
#include
#include
#include
#include
#include
using namespace std;
#define maxn 256
s...
分类:
其他好文 时间:
2014-08-18 14:36:12
阅读次数:
198
一、定义 一些定义: 节点之间的路径长度:在树中从一个结点到另一个结点所经历的分支,构成了这两个结点间的路径上的经过的分支数称为它的路径长度 树的路径长度:从树的根节点到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。 结点的权:在一些应用中,赋予树中结点的一个有某种意义的实数。 结点的带权路径长度:结点到树根之间的路径长度与该结点...
分类:
编程语言 时间:
2014-08-18 12:37:54
阅读次数:
249
题目地址:POJ 3253
哈夫曼树的结构就是一个二叉树,每一个父节点都是两个子节点的和。这个题就是可以从子节点向根节点推。
每次选择两个最小的进行合并。将合并后的值继续加进优先队列中。直至还剩下一个元素为止。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-08-04 11:07:39
阅读次数:
269
typedef struct{
int wiget;
int lchild,rchild,parent;
int data;
}HNode,*HTree;
void select(HTree &H,int i,int &s1,int &s2){
int tmp,min1,min2=0;
...
分类:
其他好文 时间:
2014-07-27 11:11:52
阅读次数:
208
题目链接:uva 1511 - Soju
题目大意:给出两个点集,问说分别从两个点集中取一点的哈夫曼距离最小值。注意一个点集的x坐标小于0,另一个大于0.
解题思路:因为x2一定大于x1,所以对于x这一维,一定是+x2-x1,所以只需要考虑y这一维坐标即可。
#include
#include
#include
#include
#include
using namesp...
分类:
其他好文 时间:
2014-07-26 17:21:42
阅读次数:
306
这个程序是研一上学期的课程大作业。当时,跨专业的我只有一点 C 语言和数据结构基础,为此,我查阅了不少资料,再加上自己的思考和分析,实现后不断调试、测试和完善,耗时一周左右,在 2012/11/19 完成。虽然这是一个很小的程序,但却是我完成的第一个程序。源码托管在 Github:点此打开链接一、问...
分类:
其他好文 时间:
2014-07-20 22:34:18
阅读次数:
407