1.输入字符个数n及相应的权值;
2.构造哈弗曼树
3.生成哈弗曼编码
4.编码
5.译码
6.退出
编码:从终端输入一串字符,将字符串中的字符依次与哈弗曼编码中的字符进行比较,若相同,则输出相应的哈弗曼编码,否则显示“编码字符串有误!”。
译码:从终端输入一串正确的0/1字符串,输出对应的字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 100
typedef struct
{
int weight;
int lchild;
int rchild;
int parent;
char key;
}htnode;
typedef htnode hfmt[MAXLEN];
int n;
void inithfmt(hfmt t) /*对结构体进行初始化*/
{ int i;
printf("\n请输入n=");
scanf("%d",&n);
getchar();
for(i=0;i<2*n-1;i++) /*对结构体进行初始化*/
{ t[i].weight=0;
t[i].lchild=-1;
t[i].rchild=-