二叉树的应用——哈夫曼编码
程序要求 构建一个赫夫曼树编/译码器。根据提供的字符集和统计结果,按赫夫曼算法构造赫夫曼树,根据赫夫曼树得到每个赫夫曼编码并输出结果,能够将一个字符串转化为对应的赫夫曼编码串,能够将赫夫曼编码字符串译码。 数据结构题集(C语言版)清华大学出版社 p149 5.2 程序代码 # include <stdio.h> # include <malloc.h> # include <string.h> typedef int Status ; typedef char TElemType ; # define ERROR 0 # define OK 1 # define N 4 typedef struct { unsigned int weight ; unsigned int parent , lchild , rchild ; } HTNode , * HuffmanTree ; //动态分配数组存储赫夫曼树,Huffmantree是指针->HTNode typedef char * * HuffmanCode ; //动态分配数组存储赫夫曼编码表 void select ( HuffmanTree HT , int k , int & s1 , int & s2 ) //select函数,从一组数中选出两个最小者 { //假设s1对应的权值总是<=s2对应的权值 int tmp =