1procedure insert(queue, value)
2 create single-node tree with value
3 merge single-node tree into queue
4procedure merge(h1, h2)
5 carry ← null
6 for k = 0 to max order
7 combine trees of same order (like binary addition)
8 attach larger root under smaller root
9procedure extractMin(queue)
10 find tree with minimum root
11 remove that tree from queue
12 reverse its children into a new queue
13 merge new queue back into original