在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。
首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,. [阅读全文] [PDF]
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 30/*自定义哈夫曼的最大个数*/
typedef struct
{
int weight;/*结点的权值*/
int parent;/*结点的双亲*/
int lchild;/*结点的左孩子*/
int rchild;/*结点的右孩子*/
int flag;/*是否用过的标志*/
}HufmTree;
int p1,p2;/*定义全局下标数字,用于Select()函数返回当前哈夫曼树中最小
两个未用的结点/森林的下标*/
void CreatH [阅读全文] [PDF]
1 共2条 分1页
- mysql升级:快速升级MySQL系统表
- access97:ACCESS97有关数据库安全的几个问题
- oracletns:Oracle的TNS-12502 错误原因及解决
- oracle开发工具:Oracle 发布免费开发工具 Raptor
- oracle数据库:Oracle Spatial时态空间数据库设计
- javascript不可运行:不唐突的JavaScript的 7条准则
- php5安装:基于 PHP5 面向对象特性的 PECL 扩展 Perl 和 PDO 编程
- 系统还原:妙用系统还原 全面挽救崩溃XP系统
- flexsdk:使用 Flex SDK 实现一个 Facebook 相册
- silverlight:[Silverlight] 有关线程调用的扩展思路方法
- silverlight播放器:Silverlight专题(15) - 你自己的视频播放器的自定义MoveToPointSlider
- silverlight:Silverlight专题(14) - 基于Silverlight的Live Search图片搜索
- actionscript3.0:ActionScript 3.0 Step By Step系列文章
- actionscript3.0:ActionScript 3.0 Step By Step系列(一):工欲其善 先利其器(Flex Builder)
- actionscript3.0:ActionScript 3.0 Step By Step系列( 2):建立扎实的ActionScript 3.0语法基础
- actionscript:ActionScript 3.0 Step By Step系列( 3):学学流程控制 编编if-else & switch & while & for
- actionscript3.0:ActionScript 3.0 Step By Step系列( 4):来自面向对象开发的前的呐喊: 学会写可重用的代码
- actionscript3.0:ActionScript 3.0 Step By Step系列( 5):走在面向对象开发的路上 以类为基础去研究编程问题
- actionscript3.0:ActionScript 3.0 Step By Step系列( 6):学对象事件模型 从点击按扭开始
- actionscript3.0:ActionScript 3.0 Step By Step系列( 7):使用XML和XMLList类处理XML数据