diff --git a/src/main/org/insa/algo/utils/PriorityQueue.java b/src/main/org/insa/algo/utils/PriorityQueue.java index 1258041..4f5bd25 100644 --- a/src/main/org/insa/algo/utils/PriorityQueue.java +++ b/src/main/org/insa/algo/utils/PriorityQueue.java @@ -3,18 +3,29 @@ package org.insa.algo.utils; /** * Interface representing a basic priority queue. * - * @see https://en.wikipedia.org/wiki/Priority_queue + * Implementation should enforce the required complexity of each method. + * */ public interface PriorityQueue> { /** * Check if the priority queue is empty. * + *

+ * Complexity: O(1) + *

+ * * @return true if the queue is empty, false otherwise. */ public boolean isEmpty(); /** + * Get the number of elements in this queue. + * + *

+ * Complexity: O(1) + *

+ * * @return Current size (number of elements) of this queue. */ public int size(); @@ -22,6 +33,10 @@ public interface PriorityQueue> { /** * Insert the given element into the queue. * + *

+ * Complexity: O(log n) + *

+ * * @param x Item to insert. */ public void insert(E x); @@ -29,6 +44,10 @@ public interface PriorityQueue> { /** * Remove the given element from the priority queue. * + *

+ * Complexity: O(log n) + *

+ * * @param x Item to remove. */ public void remove(E x) throws ElementNotFoundException; @@ -36,6 +55,10 @@ public interface PriorityQueue> { /** * Retrieve (but not remove) the smallest item in the queue. * + *

+ * Complexity: O(1) + *

+ * * @return The smallest item in the queue. * * @throws EmptyPriorityQueueException if this queue is empty. @@ -45,6 +68,10 @@ public interface PriorityQueue> { /** * Remove and return the smallest item from the priority queue. * + *

+ * Complexity: O(log n) + *

+ * * @return The smallest item in the queue. * * @throws EmptyPriorityQueueException if this queue is empty.