目录

 

哈夫曼概念

引入

相关概念

举例

基本概念

特点

哈夫曼树的构造算法

1.哈夫曼算法

举例

2.哈夫曼树算法实现:

举例

实现

哈夫曼典型应用—哈夫曼编码

思想

举例

产生的两大问题

算法实现

文件的编码和解码

编码

解码


哈夫曼概念:

引入:

树——哈夫曼树的概念及其应用

由上述对比,为找到效率最高的判别树,引入了哈夫曼树(最优二叉树)的概念。

相关概念:

树——哈夫曼树的概念及其应用

树——哈夫曼树的概念及其应用

但路径长度最短的二叉树不一定是完全二叉树。

树——哈夫曼树的概念及其应用

举例

树——哈夫曼树的概念及其应用

基本概念

树——哈夫曼树的概念及其应用

特点

满二叉树不一定是哈夫曼树

哈夫曼树中权越大的叶子离根越近

具有相同带权结点的哈夫曼树不唯一

哈夫曼树的构造算法:

1.哈夫曼算法

树——哈夫曼树的概念及其应用

树——哈夫曼树的概念及其应用

包含n个叶子结点的哈夫曼树中共有2n-1个结点。

哈夫曼树由两两合并得到的,所以n个结点一定合并n-1次,生成n-1个新结点。所以共有n+n-1=2*n-1个结点。

举例

树——哈夫曼树的概念及其应用

2.哈夫曼树算法实现

树——哈夫曼树的概念及其应用

举例:有n=8,权值为W={7,19,2,6,32,3,21,10},来构造哈夫曼树。

第一步:

树——哈夫曼树的概念及其应用树——哈夫曼树的概念及其应用

第二步:在parent为0的里面再选择两个较小的,以此类推,每次都这样。

树——哈夫曼树的概念及其应用树——哈夫曼树的概念及其应用

第三步:

树——哈夫曼树的概念及其应用树——哈夫曼树的概念及其应用

第四步:

树——哈夫曼树的概念及其应用树——哈夫曼树的概念及其应用

第五步:

树——哈夫曼树的概念及其应用树——哈夫曼树的概念及其应用

依此类推,直到最后:(只剩下一个parent的值为0时)

树——哈夫曼树的概念及其应用树——哈夫曼树的概念及其应用

实现:

树——哈夫曼树的概念及其应用

初始化

树——哈夫曼树的概念及其应用

进行n-1次合并

树——哈夫曼树的概念及其应用

哈夫曼典型应用—哈夫曼编码

思想

树——哈夫曼树的概念及其应用

树——哈夫曼树的概念及其应用

举例

树——哈夫曼树的概念及其应用

我们可以看到没有前缀码。

产生的两大问题

树——哈夫曼树的概念及其应用

算法实现

树——哈夫曼树的概念及其应用

树——哈夫曼树的概念及其应用

文件的编码和解码:

编码

树——哈夫曼树的概念及其应用

解码:

树——哈夫曼树的概念及其应用

例如:

树——哈夫曼树的概念及其应用

 

相关文章: