#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
char ch;
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;
typedef char ** HuffmanCode;
void Select(HuffmanTree HT,int n,int &s1,int &s2){
int min1,min2,i;
min1=min2=999;
s1=s2=0;
for(i=1;i<=n;i++){
if(!HT[i].parent){
if(HT[i].weight<min1){
min2=min1;
s2=s1;
min1=HT[i].weight;
s1=i;
}
else if(HT[i].weight<min2){
min2=HT[i].weight;
s2=i;
}
}
}
}
void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,int w[],int n,char str[]){
int i,m,s1,s2;
int start,f,c;
char *cd;
if(n<=1)
exit(0);
m=2*n-1; //结点数
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));//0单元不用
HT[0].ch=' ';
HT[0].lchild=0;
HT[0].weight=0;
HT[0].parent=0;
HT[0].rchild=0;
for(i=1;i<=n;i++)
C语言实现哈夫曼编码
最新推荐文章于 2024-05-18 17:23:33 发布
本文展示了一个C语言实现哈夫曼编码的程序。程序首先创建哈夫曼树,接着根据树结构生成哈夫曼编码,并打印出来。用户可以输入字符及其权重,程序将生成对应的哈夫曼编码表。
摘要由CSDN通过智能技术生成