哈夫曼树的建立和哈夫曼编码的构造
被考次数: 4次
被考频率: 中频率
答错率:    41%
知识难度:
考试要求: 掌握     
知识路径:  > 计算机科学基础  > 常用数据结构  >   > 树和二叉树


本知识点历年真题试卷分布
>> 试题列表    
 

 
       1)哈夫曼树的基本概念
       .路径:由从树中一个节点到另一个节点之间的分支构成两节点之间的路径。
       .路径长度:路径上的分支数目。
       .树的路径长度:从树根到每一个节点的路径长度之和。
       .节点的带权路径长度:从节点到根之间的路径长度与节点上权的乘积WkLk
       .树的带权路径长度:树中所有带权叶子节点的路径长度之和。
       .哈夫曼树:假设有n个数值{W1W2,…,Wn},试构造一棵有n个叶子节点的二叉树,节点带权为W1,带权路径长度WPL最小的二叉树称哈夫曼树。
       下图给定的两棵二叉树,它们的带权路径长度分别为:
       
       二叉树
       (1)WPL=7*2+5*2+2*2+4*2=36。
       (2)WPL=7*1+5*2+2*3+4*3=35。
       2)哈夫曼树的构造
       哈夫曼树的构造算法如下。
       (1)根据给定的n个数值{W1,W2, …,Wn}构成n棵二叉树的集合F={T1,T2, …,Tn},其中每棵二叉树Ti中只有一个带权为Wi的根节点,左右子树均空。
       (2)在F中选取两棵根节点的数值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根节点的数值为其左右子树上根节点的数值之和。
       (3)在F中删除这两棵树,同时将新得到的二叉树加入F中。
       (4)重复步骤(2)、(3),直到F只含一棵树为止。
       3)哈夫曼编码
       哈夫曼编码的设计思想是:若要设计长短不等的编码,则必须是任一个字符的编码都不是另一个字符的编码的前缀,这种编码称作前缀编码。利用二叉树来设计二进制的前缀编码,设计长度最短的二进制前缀编码,以n种字符出现的频率作为权,由此得到的二进制前缀编码为哈夫曼编码。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有