给定一个字符集(a,b,c,d,e,f},它们的出现频率分别是(6,3,8,2,10,4}首先,将所有字符及其频率放入一个列表,并按频率排序。初始列表为:[(d,2),(b,3),(f, 4),(a, 6),(c,8),(e,10)]。
然后,取出频率最低的两个元素,将它们合并成一个新的节点,其频率为这两个元素的频率之和,然后将新节点插入列表中的适当位置以保持排序。我们重复此步骤,直到列表中只剩下一个元素。
左分支通常表示0,右分支通常表示1.
对于字符a,我们从根节点开始,向左再向左,所以a的哈夫曼编码是00
对于字符b,我们从根节点开始,向右,然后向左,再向右,最后向右,所以b的哈夫曼编码是1011;
以此类推