我正在通过以下接口实现基于数组的priorityQueue:
public interface IPriorityQueue {
/**
* Adds an element to the queue.
*
* @param element the element to be queued
* @throws QueueFullException if there is no room in the queue for the new element
*/
void enqueue(Comparable element) throws QueueFullException;
/**
* Removes the largest element.
*
* @return the element removed
* @throws QueueEmptyException if the queue is empty
*/
Comparable dequeue() throws QueueEmptyException;
/**
* Returns the number of elements in the queue.
* @return the number of elements in the queue
*/
int size();
/**
* Checks whether the queue is empty.
* @return true if the queue is empty
*/
boolean isEmpty();
/**
* Removes all elements from the queue.
*/
void clear();}
如果我要使用基于数组的通用对象队列,我想知道实现这些方法时的根本区别是什么。
答案 0 :(得分:2)
根据我的理解,我相信你要求队列和优先级队列之间的区别。
<强>队列:强>
队列被定义为遵循严格的插入和删除方法(先进先出)的数据结构。
优先级队列:
最小优先级队列:它的根目录中包含最小元素。
最高优先级队列:它的根目录中包含最大元素。
优先级队列是一个数据结构,其中包含某些元素,您可以执行以下操作:Extract-Min(),Decrease-Key(),Insert(),deleteMax(),它是因为priotity队列可以比较事物(在通用情况下,它实现了可共同分析)
PriorityQueue中的Insertion和Extract-Min可以按任何顺序进行,具体取决于优先级队列的实现方式。堆是最有效的&#34;实现优先级队列的方法。但优先级的实施性质取决于您的要求。
希望这有帮助。