哈弗曼
编码及译码
#include iostream.h#include math.h#include stdlib.h#include string.h#define MAXSIZE 100 //最多子叶数#define MAXCODE 10000 //编码最大长度
typedef struct{ char info; //关联字符信息 unsigned int weight; //每个节点的权职 unsigned int parent, lchild, rchild;}HTNode,*HuffmanTree;
typedef char **HuffmanCode; //存储哈弗曼编码
void Select(HuffmanTree HT, int j,int s1,int s2){//选择双亲节点为0,并且最小的两个子叶节点 int i=1,m; while(HT[i].parent!=0) i++; //找第一个双亲节点为0的子叶结点 for(s2=s1=i;ij;i++) {//保证s1中的权值最小,s2次小 if(HT[i].parent==0 HT[i].weightHT[s1].weight) { s2=s
原创力文档

文档评论(0)