知识点
优先队列:优先取出最大键值的队列,可以利用最大堆实现、也可以用STL实现。
问题链接
问题内容
对于队列有两种操作,insert(S,k)在集合S中插入元素k;extract()将队列键值最大的值取出。end()结束处理。
思路
对于insert操作,将元素k插入到最大堆的最后一位,然后往上比较交换即可;对于extract操作,删除第一位元素,将最后一位元素换到第一位的位置,然后利用maxHeapify()调整堆。
代码
利用最大堆实现优先队列
#include <iostream>
#include <cstdio>
#include <algorithm>
using