def huffman(C): n = len(C) Q = PriorityQueue(C, MinHeap) for i in range(n - 1): x = Q.extract_min() y = Q.extract_min() z = Node(x.key() + y.key()) z.left = x z.right = y Q.insert(z) return Q.extract_min()