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)、
未完...