Python优先队列
(1)一般优先队列
from queue import PriorityQueue as PQ
pq = PQ()
pq.put(1) #添加元素(入队列)
pq.put(2)
pq.queue #输出所有元素 output: [(1, 'b'), (2, 'a')]
pq.get() #出队列 output: (1, 'b')
(2)MinHeap
#heapq 模块实现,默认为小顶堆
import heapq
self.pool = nums
heapq.heapify(self.pool) #初始化heapq(将数组self.pool定义为heapq类型)
heapq.heappop(self.pool) #从heapq中取出顶部min
heapq.heappush(self.pool, val) #将val压入self.pool中
heapq.heapreplace(self.pool, val) #将self.pool的顶部min替换为val
Java优先队列
//一般优先队列:默认MinHeap
PriorityQueue<Integer> q = new PriorityQueue<>(); //空优先队列定义,默认为:小顶堆
q.size(); //堆当前大小
q.offer(val); //添加新元素val
q.poll(); //取出堆顶元素,并删除
q.peek(); //取出堆顶元素
展开