设计与实现哈夫曼算法( Python语言 )
发布时间
阅读量:
阅读量
# -*- coding: UTF-8 -*-
class HTNode(BinTNode):
def __lt__(self, othernode):
return self.data < othernode.data
class HuffmanPrioQueue(PrioQueue):
def number(self):
return len(self._elems)
def huffman_tree(weights):
trees = HuffmanPrioQueue()
for w in weights:
trees.enqueue(HTNode(w))
while trees.number() > 1:
t1 = trees.dequeue()
t2 = trees.dequeue()
x = t1.data + t2.data
trees.enqueue(HTNode(x, t1, t2))
return trees.dequeue()
全部评论 (0)
还没有任何评论哟~
