份电文中有6种字符:A,B,C,D,E,F,它们的出现频率依次为16,5,9,3,30,1,完成问题:(1)设计一棵哈夫曼树;(画出其树结构)(2)计算其带权路径长度WPL;(3)写出其哈夫曼树HT存储结构的初态和终态。
时间: 2023-04-02 18:00:17 浏览: 1436
构造哈夫曼树之后,求每一个字符的编码需要走一条从叶子结点到根结点的路径
5星 · 资源好评率100%
好的,我可以回答这个问题。
(1)哈夫曼树的结构如下图所示:
```
64
/ \
/ \
35 29
/ \ / \
/ \ / \
16 19 9 20
/ \ / \
A B C DEFG
```
(2)带权路径长度WPL为:16*2 + 5*4 + 9*3 + 3*5 + 30*1 + 1*5 = 124。
(3)哈夫曼树HT的初态为:数组存储字符和其出现频率,如下所示:
```
char ch[] = {'A', 'B', 'C', 'D', 'E', 'F'};
int weight[] = {16, 5, 9, 3, 30, 1};
int n = 6;
```
哈夫曼树HT的终态为:链式存储结构,如下所示:
```
typedef struct HTNode {
int weight;
int parent, lchild, rchild;
} HTNode, *HuffmanTree;
```
阅读全文