wkhzwmr

创建最小堆

这里的import heaqp只能用来创建最小堆;创建最大堆可以把列表中的元素提取出来乘负1,然后再加入列表中进行堆化操作,这样提取出来的堆顶也就是列表中最大的元素
最小堆的特性:二叉堆本质是一个二叉树,最小堆的堆顶是整个堆中最小的元素,同理,最大堆的堆顶就是整个堆中最大的元素。

把列表堆化成堆

heapq.heapify(list)

添加元素

heapq.heappush(minheap,10)

删除元素

heapq.heappop(minheap)

遍历堆顶元素

        while len(minheap)!=0:
            print(heapq.heappop(minheap)) #100 110 1110

完整代码

import heapq

class Test:
    def test(self):
        # create minheap;创建最小堆
        # minheap=[]
        minheap=[]
        heapq.heapify(minheap) # 把列表堆化成堆
        heapq.heappush(minheap,10)
        heapq.heappush(minheap,100)
        heapq.heappush(minheap,1)
        heapq.heappush(minheap,110)
        heapq.heappush(minheap,1110)
        print(minheap) # [1, 100, 10, 110, 1110]
        #peak
        print(minheap[0]) # 1
        # delete删除堆顶
        heapq.heappop(minheap) # 10
        # size
        len(minheap) 
        # 遍历堆顶元素
        while len(minheap)!=0:
            print(heapq.heappop(minheap)) #100 110 1110

a = Test()
a.test()
# [99999]*-1为空列表
# a.test([99999]*-1) 

分类:

技术点:

相关文章:

  • 2021-05-26
  • 2021-12-14
  • 2021-09-08
  • 2021-10-26
  • 2021-08-16
  • 2021-08-16
  • 2020-05-26
  • 2019-11-26
猜你喜欢
  • 2020-04-29
  • 2021-03-28
  • 2021-07-05
  • 2022-01-23
  • 2021-09-17
  • 2021-12-08
相关资源
相似解决方案