文章目录
一、原理二、伪代码
一、原理
频率:
原理:
构造的方法就是将所有的指令按使用的频度(也就是程序中出现的概率)由小到大依次排列,每次将两个使用频度最小合并在一起,构成一个频度为两者之和的新结点,将其与余下的结点放在一起。接着再从这些结点中继续找两个使用频度最小合并在一起,构成一个频度为两者之和的新结点。重复上述过程,全部结点合并完成。
过程:
0.01和0.02是目前最小的,结合为0.03 0.03和0.03是目前最小的,结合为0.06 0.06和0.06是目前最小的,结合为0.12 0.07和0.07是目前最小的,结合为0.14
…
二、伪代码
HUFFMAN()
n ←
|C
|
Q ← C
for i ←
1 to n
-1
do allocate a
new node z
left
-son
[z
] ← x ← EXTRACT
-MIN(Q
)
right
-son
[z
] ← y ← EXTRACT
-MIN(Q
)
f
[z
] ← f
[x
] + f
[y
]
INSERT(Q
, z
)
return EEXTRACT
-MIN(Q
)