哈夫曼相关定义及解释
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
typedef struct{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;
typedef char **HuffmanCode;//动态分配数组存储哈夫曼编码
void select(HuffmanTree &a,int n, int &s1, int &s2)
{
for (int i = 1; i = n; i++)
{
if (a[i].parent == 0)// 初始化s1,s1的双亲为0
{
s1 = i;
break;
}
}
for (int i = 1; i <= n; i++)// s1为权值最小的下标
{
if (a[i].parent == 0 && a[s1].weight > a[i].weight)
s1 = i;
}
for (int j = 1; j <= n; j++)
{
if (a[j].parent