Java中PriorityQueue和Queue实现的区别

时间:2017-11-04 15:20:47

标签: java interface queue priority-queue comparable

我正在通过以下接口实现基于数组的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();}

如果我要使用基于数组的通用对象队列,我想知道实现这些方法时的根本区别是什么。

1 个答案:

答案 0 :(得分:2)

根据我的理解,我相信你要求队列和优先级队列之间的区别。

<强>队列:

队列被定义为遵循严格的插入和删除方法(先进先出)的数据结构。

优先级队列:

最小优先级队列:它的根目录中包含最小元素。

最高优先级队列:它的根目录中包含最大元素。

优先级队列是一个数据结构,其中包含某些元素,您可以执行以下操作:Extract-Min(),Decrease-Key(),Insert(),deleteMax(),它是因为priotity队列可以比较事物(在通用情况下,它实现了可共同分析)

PriorityQueue中的Insertion和Extract-Min可以按任何顺序进行,具体取决于优先级队列的实现方式。堆是最有效的&#34;实现优先级队列的方法。但优先级的实施性质取决于您的要求。

希望这有帮助。