摘要: 1 /*---------------------------------------------- 2 COLORS3.C -- Version using Common Dialog Box 3 (c) Charles Petzold, 1998 4 ----------------------------------------------*/ 5 6 #include <windows.h> 7 #include <commdlg.h> 8 9 UINT_PTR CALLBACK CCHookProc( HWND hdl... 阅读全文
posted @ 2011-12-14 15:59 不洗脸都帅 阅读(532) 评论(0) 推荐(1) 编辑
摘要: 霍夫曼编码是一种被广泛应用而且非常有效的数据压缩技术,根据待压缩数据的特征,一个可压缩掉20%~90%。这里考虑的数据指的是字符串序列。要理解霍夫曼编码,先要理解霍夫曼树,即最优二叉树,是一类带权路径长度最短的树。路径是指从树中一个结点到另一个结点之间的通路,路径上的分支数目称为路径长度。树的路径长度是从树根到每一个叶子之间的路径长度之和。结点的带权路径长度为从该结点到树根之间的路径长度与该结点权的乘积,树的带权路径长度为树中所有叶子结点的带权路径长度之和.霍夫曼树是指所有叶子结点的二叉树中带权路径长度最小的二叉树.当给定了n个叶子结点的权值后,构造出的最优二叉树的结点数目m就确定了,即m=2 阅读全文
posted @ 2011-11-22 10:59 不洗脸都帅 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: 相信很多人都遇到过此问题,因为数据结构中哈夫曼编码中创建哈夫曼树的时候就需要从树的"集合"中选择出来2个权值最小的来。思路:定义2个临时变量temp1,temp2,分别用来存储数组中的第一个(a[0])跟第二个元素(a[1]),并且进行相应比较,让temp1存放二者中小的那个值,temp2存放大的。 从数组第3个元素a[2]开始遍历,取值,跟temp2进行对比,如果比temp2小,那需要进一步跟temp1进行比较,倘若比temp1还小,那说明此值是目前已知的最小值, 而此步之前的最小值temp1,现在成功变身成为了第二小的值。因此需要进行以下替换操作。temp2=temp1 阅读全文
posted @ 2011-11-21 17:14 不洗脸都帅 阅读(2567) 评论(20) 推荐(0) 编辑