学过数据结构的都知道优先队列这种东西,普通的队列是依据入队顺序,先入队的先出队,而优先队列则是依照键值,键值越大(或越小),就越先出队. 所以,优先队列基本支持push,pop,empty,size,top,这几种操作.最近在看C++prime,学了类之后觉得非常适合用来实现高级数据结构,于是就动手做了一下,花了一周,终于弄好了.以下的实现都默认最小堆. 二叉堆: 最常用,最简单的堆实现,因为二叉堆是完全二叉树,所有可以使用顺序存储结构,也就是说,数组来保存数据.二叉堆主要基于上滤与下滤操作来维…