构造哈弗曼树有没有什么技巧?

来源:百度知道 编辑:UC知道 时间:2024/06/19 16:10:40
考试的时候,如果给一组带权值的项,让你构造一个哈弗曼树并进行哈弗曼编码,构造树的时候到后面一个结点后面跟一挂,写起来又麻烦,又容易出错,请问各路高手有没什么技巧可以简化一下?

HUFFMAN树还是比较简单的,下面是例程

#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef struct{
char c; //代码;
int w; //代码权值;
char code[MaxSize]; //代码的Huffman编码;
}HuffCode[MaxSize];
typedef struct{
int Weight; //权值;
int LChild,RChild,Parent;
}HTNode,HuffTree[MaxSize];
//================================================================================
void HuffmanTree(HuffTree HT,int length,HuffCode hc); //生成Huffman树;
void SelectHTNode(HuffTree HT,int n,int *min1,int *min2); //查找最小和次小序号;
void HuffmanCode(HuffTree HT,int len,HuffCode hc); //生成Huffman编码;
//================================================================================
int main(void)
{
HuffTree HT; //Huffman树;
HuffCode HC; //Huffman编码;
int i,len;