- 4
- 0
- 约1.6万字
- 约 82页
- 2019-10-13 发布于广东
- 举报
练习: 已知有6个叶子,值分别为A、B、C、D、E、F,它们的权值分别为4,9,1,3,2,1,试构造哈夫曼树(左权≤右权)。 * 5.5.3基于顺序存储Huffman树构造 1、Huffman树结点结构 问题:若哈夫曼树有n0个叶子结点,则所有结点 个。 * 2n0-1 解:因为树中无度为1的结点, 由二叉树的性质3知:n0=n2+1 所以:n=n0+n2=n0+n0-1 =2n0-1 由于最终结果中结点个数已经确定,因此可采用顺序结构存储存放所建Huffman树 5.5.3基于顺序存储Huffman树构造 1、Huffman树结点结构2 问题:结点结构如何构造? * 00 struct node 01 { 02 int weight; 03 int parent,lch,rch; 04 }; 05 struct node Htree[MAX]; 5.5.3基于顺序存储Huffman树构造2 2、Huffman树构造算法 问题:算法如何构造Huffman树? * 原理: 找两无双亲且权值最小结点合并,生成新结点,填写相关信息(两结点双亲,新结点权值,新结点左、右孩子)。 算法5-13 基于顺序存储Huffman树构造算法 00 creat_huff(str
原创力文档

文档评论(0)