解一道哈夫曼编码树问题

Posted 渐渐遗忘者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解一道哈夫曼编码树问题相关的知识,希望对你有一定的参考价值。

 

已知字符a~f的出现频率分别是55、30、19、3、6、16,在此基础上构造Huffman树,并写出a~f的前辍编码,规定左孩子编码为0,右孩子编码为1。(6分)

 

现在的集合是{55,30,19,16,6,3}

先取最小的权值  

 

    9

  /    \

6       3

现在变成了 {55,30,19,16,9}继续取最小权值

              25

            /    \

          16     9

                  /    \

                 6      3

现在变成了 {55,30,19,25}

           

44

 /    \  

19   25

            /    \

         16     9

                  /    \

                6      3

现在变成了 {55,30,44}

       
74

/    \  

30    44

       /    \  

      19   25

            /    \

          16     9

                  /    \

               6       3

{55,74}

          129

          /      \

        55(a)    77

                   /    \  

             30(b)    44

                        /         \  

                       19(c)     25

                                   /        \

                                  16(f)     9

                                           /       \

                                       6(e)      3(d)

排序一下,55(a)   30(b)   19(c)   16(f)   6 (e)  3(d)

 

a:0

B:10

C:110

F:1110
e:11110
d:11111

以上是关于解一道哈夫曼编码树问题的主要内容,如果未能解决你的问题,请参考以下文章

一道哈夫曼二叉树题目--稍微容易一点

霍夫曼树和霍夫曼编码以及霍夫曼编码的应用

哈夫曼编码器

哈夫曼编码C语言实现

哈夫曼编码压缩解压缩实现&不同类型文件压缩比的测试

哈夫曼编码问题,高手帮我