Advertisement

设计与实现哈夫曼算法( 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)

还没有任何评论哟~