/*
* Copyright (c) 2017,烟台大学计算机学院
* All right reserved.
* 文件名称:main.cpp
* 作者:王华慧
* 完成日期:2017年11月8日
* 版本号:v1.0
*
* 问题描述:哈夫曼编码的验证
* 输入描述:标准函数输入
* 程序输出:标准函数输出
*/
#include <stdio.h>
#include <string.h>
#define N 50 //叶子结点数
#define M 2*N-1 //树中结点总数
//哈夫曼树的节点结构类型
typedef struct
{
char data; //结点值
double weight; //权重
int parent; //双亲结点
int lchild; //左孩子结点
int rchild; //右孩子结点
} HTNode;
//每个节点哈夫曼编码的结构类型
typedef struct
{
char cd[N]; //存放哈夫曼码
int start;
} HCode;
//构造哈夫曼树
void CreateHT(HTNode ht[],int n)
{
int i,k,lnode,rnode;
double min1,min2;
for (i=0; i<2*n-1; i++) //所有结点的相关域