哈夫曼树的基本概念
哈夫曼树的构造算法
哈夫曼树的构造示例
哈夫曼编码的基本概念
哈夫曼编码的程序实现
存储结构
采用顺序存储结构–一维结构数组
哈夫曼树中共有 2n-1 个结点,不使用 0 下标,数组大小为 2n。
结点类型定义
typedef struct
{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;
示例
例如,有 n = 8,权值为 W = {7 19 2 6 32 3 21 10}
构造哈夫曼树
| weight | parent | lch | rch |
| 7 | 11 | 0 | 0 |
| 19 | 13 | 0 | 0 |
| 2 | 9 | 0 | 0 |
| 6 | 10 | 0 | 0 |
| 32 | 11 | 0 | 0 |
| 3 | 9 | 0 | 0 |
| 21 | 13 | 0 | 0 |
| 10 | 11 | 0 | 0 |
| 5 | 10 | 3 | 6 |
| 11 | 12 | 4 | 9 |
| 17 | 12 | 1 | 8 |
| 28 | 14 | 10 | 11 |
| 40 | 15 | 2 | 7 |
| 60 | 15 | 5 | 12 |
| 100 | 0 | 0 | 0 |
对应的哈夫曼树为

391

被折叠的 条评论
为什么被折叠?



