输入条件:输入从小到大排列的n个正整数,作为叶子的权值,共同完成构建具有n片叶的,根指针为Hroot的哈夫曼树
(1)程序前部的定义
#include <stdio.h>
#include <mm_malloc.h>
#include <string.h>
#define MAX 999 //监督元
#define n 6 //n个叶子节点
char s[6]={0}; //存放哈夫曼编码的数组,初始化
typedef struct Hfnode
{
int data; //权值
char hfcode[6]; //哈夫曼编码
struct Hfnode *Lson,*Rson,*next;
}Hfnode,*Hfptr;
(2)主控函数
//主控函数
int main()
{
int l;
Hfptr Hfroot,head;
head=inition(); //调用初始化函数
Hfroot=creatHftree(head);//调用造树函数
l=Hfcode(Hfroot,0,0);//输出哈夫曼编码
return 0;
}
(3)初始化函数
//初始化函数
Hfptr inition()
{
int i;Hfptr h,p;
h=p=(Hfptr)malloc(sizeof(Hfnode));
h->data=