2019-03-27 哈夫曼树、哈夫曼编码的理解

一、思想的应用

  1、文件压缩。

  2、数据通信。

  将数据进行有效编码。

二、哈夫曼树

  将一组混乱的数组,排成哈夫曼树,可以分为以下几步:

  假设数组为arr ={}

  1、先将数组排序,从小到大。

  2、数组移除最小的两个数,作为叶子节点,根节点为两数之和,合成一个二叉树。

  3、将根节点加入数组,对数组重新排序。

  4、重复2、3步骤。直到数组只剩下最后一个数,结束。至此,一开始的数组排成一个哈夫曼树,

三、哈夫曼编码

  1、我的理解:将一串数据,比如(hello world~~),根据不明约定(也就是哈夫曼编码方式)转换成一组二进制的数据,(如10101010101010011011011,我只是随便举例,前面那个并不是转换成这个)。

  2、过程:

  (1)、拟定一串数据为 hello world,i am coming.

  (2)、统计数据中每个字符出现的频次{'h':1,'e':1,'l':3,'o':3,'空格':3,'w':1,'r':1,'d':1,',(逗号)':1,'i':2,'a':1,'m':2,'c':1,'n':1,'g':1}

  (3)、将频次从小到大排列,构造成哈夫曼树结构。

  (4)、将树的每一条左分支标志为0,右分支标志位1。

  (5)、                           

  

未完...

原文地址:https://www.cnblogs.com/mathlin/p/10606089.html