在《Handbook of Data Structures and Applications》一书中,介绍和讨论了一系列针对不同需求的设计精妙的Priority Queue和参考文献。这一系列的优先队列设计,都是在基于最原始的queue和priority queue的基础上,针对新需求,提出的变种和增强版本数据结构。非常具有启发性。
下面包含这些Priority Queue之间的关系:
Queue
队列 (Queue) 是一个基本的数据结构。支持先进先出 (FIFO: First In First Out) 的线形表。主要支持下面两个操作:
EnQueue:往队列尾端插入一个元素
DeQueue:从队列首端弹出一个元素
--------------------------------------------------
如果队列中的元素有不同的优先级, 而每次出队操作是返回优先级最高的元素,而不是简单的队首元素。怎么支持这个需求呢?