#include<stdio.h>
#include<string.h>
#include<malloc.h>
//频率结构体
typedef struct{
char c;
int cnt; //字符出现频率
}WPL;
//哈夫曼树表结构
typedef struct{
char c;
int weight; //权值
int parent,lch,rch; //双亲,左孩子,右孩子
}HuffmanTree;
//统计字符的频率
int setWPLValue(char *s,int size,WPL w[]){
//初始化
for(int i=0;i<size;i++)
w[i].cnt=0;
int flag=1;
int num=0; //统计有多少个不同的字符
while(*s!='\0'){
//如果字符等于w数组中的字符,将这个字符cnt++;并将flag置为0
for(int i=0;i<num;i++){
if(*s==w[i].c){
w[i].cnt++;
flag=0;
break;
}
}
//如果flag为1,将新字符添加到w数组中,将该字符cnt++,并num++
if(flag){
w[num].c=*s;
w[num].cnt++;
num++;
}
flag=1;
s++; //下一个字符
}
return num; //返回数组中有多少个字符
}
//找出最小值和次小值
void Select(HuffmanTree *HT,int size,int *L,int *R){
float min_val; /