哈弗曼树
[实验内容] 1、建立哈夫曼树; 2、哈夫曼编码、解码。 【实验测试数据】 #include "stdio.h" #include "stdlib.h" #include "string.h" typedef char* HuffmanCode;/*动态分配数组,存储哈夫曼编码*/ /*哈夫曼树类型定义*/ typedef struct { char letter; int weight; /*结点的权值*/ int parent; /*双亲的下标*/ int LChild; /*左孩子结点的下标*/ int RChild; /*右孩子结点的下标*/ }HTNode,*HuffmanTree;/*HuffmanTree是结构数组类型*/ /*在1~i-1范围内选择两个parent为0且weight最小的结点,其序号分别赋给s1、s2返回*/ void select(HuffmanTree *ht,int n, int *s1, int *s2) { int i; int min; for(i=1; i<=n; i++) { if((*ht)[i].parent == 0) { min = i; i = n+1; } } for(i=1; i<=n; i++) { if((*ht)[i].parent == 0) { if((*ht)[i].weight < (*ht)[min]