一、 1.1 a = [2,4,1,3,6,1,4] heapq.heappush(a,3) print(a) heapq.heappush(a,5) print(a) heapq.heappush(a,1) 如果原列表有值,那么新增加的值不能自动与原列表的值构成小顶堆。 result:
[2, 4, 1, 3, 6, 1, 4, 3]
[2, 4, 1, 3, 6, 1, 4, 3, 5]
1.2
import heapq a = [] heapq.heappush(a,3) print(a) heapq.heappush(a,5) print(a) heapq.heappush(a,1) print(a) 如果原列表无值,在列表插入值过程中,整个列表可以形成小顶堆 result: [1, 5, 3]
python没有可以直接使用的大顶堆。但是我们可以给列表中的元素加上负号,是的变成小顶堆,再在取数的时候再将其添加负号,就将小顶堆变成了大顶堆。