// 哈夫曼树.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#define MAX 20
using namespace std;
typedef char valType;
typedef double wghType;
struct HFMnode
{
valType data;
wghType weight;
int parent;
int lchild;
int rchild;
};
//每个节点的编码
//code存储编码
//start存储编码是从code数组的第几个开始
//在编码过程中从叶子节点向根节点逆推
struct HFMcode
{
char code[MAX];
int start;
};
//建立哈夫曼树
void createHFMtree(HFMnode *node,int n)
{
int i;
//m1,m2为当前还没用到的节点中权值最小和次小的权值
int m1,m2;
//l,r为每次构建一个父节点其左右儿子节点的序号
int l,r;
for(i=n+1;i<=2*n-1;i++)
{
m1=m2=32767;<