1.优先级队列定义:
优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有
(1)查找
(2)插入一个新元素
(3)删除 一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 。
对于优先权相同的元素,可按先进先出次序处理或按任意优先权进行。
2.优先级队列的实现方案
优先级队列的实现既要兼顾成本,也要兼顾效率
(1).第一种使用向量实现:

由图可知,在使用插入操作时,时间复杂度为o(1),但是在getMax,需要遍历整个向量,找出最大的元素,
而delMax操作时却不仅要遍历向量找到最大元素,而且在摘抄它之后将所有元素顺序后移,这种时间复杂度是无法接受的。
(2).使用有序向量

本文介绍了优先级队列的概念,以及多种实现方式,包括向量、有序向量、列表、有序列表和BBST。重点讨论了使用堆作为数据结构实现优先级队列的优势,堆作为一个完全二叉树,能确保根节点为最大(最小)值。文章提供了堆的insert、getMax和remove操作的代码实现,并进行了测试。
最低0.47元/天 解锁文章
1271

被折叠的 条评论
为什么被折叠?



