#include #include "stdlib.h" #define MAXBIT 10#define MAXVALUE 10000#define MAXLEAF 100#define MAXNODE MAXLEAF*2-1 //定义哈夫曼树编码类型typedef struct {char bit[MAXBIT]; //存放叶子结点字符编码过后的二进制编码 int start; //存放叶子结点二进制编码在 bit[]数组里的起始数组位置int length; //存放二进制编码的位数}HFMCode; //定义哈夫曼树结点类型typedef struct {char data; //编码字符int weight; //哈夫曼树结点的权值int parent; //哈夫曼树结点的父结点int lchild; //哈夫曼树结点的左孩子int rchild; //哈夫曼树结点的右孩子}HFMNode; //构造哈夫曼树void createHFMTree(HFMNode hfmnode[MAXNODE],int n) { int i,j,m1,m2,x1,x2; for(i=0;i<2*n-1;i++) { hfmnode[i].weight=0; hfmnode[i].parent=-1; hfmnode[i].lchild=-1; hfmnode[i].rchild=-1; } for(i=0;i