HUFFMAN(Σ)
Input: Σ An alphabet with associated symbols and frequency
Output: A prefix-free tree with minimal encoding costs.
- n ← |Σ|
- Q ← Σ // note Q is a min-heap
- for i ← 1 to n-1 do
- allocate a new node z
- z.left = x = Q.ExtractMin()
- z.right = y = Q.ExtractMin()
- z.frequency = x.frequency + y.frequency
- Q.Insert(z)
- return Q.ExtractMin()