关于堆和优先级队列的问题
来源:4-2 堆的基本存储
烈焰卡卡
2019-04-21
突然好奇一个问题,网上没太能搜到满意的答案
就是了解了一下优先级队列的实现原理,通常是通过最大最小堆来实现的一个优先级队列。
但是想知道像优先级队列中,大部分元素的权值都相同时,如何保证既能够让优先级高的元素优先被取出,又能保证其余权值相同的元素,按照他们入队的顺序,按照(先入先出或先入后出)的规律出队?
写回答
1回答
-
对于每一个元素,同时记录一下入队的顺序。
此时,相当于真正的权值是一个pair,包含weight和order两部分。weight不同,weight越大,权值越高;weight相同,order越小,权值越高:)
继续加油!:)
00
相似问题