From charlesreid1

No edit summary
No edit summary
Line 1: Line 1:
==Links==
=Links=


===My Priority Queue API===
==My Priority Queue API==


Two concrete priority queue classes and one abstract priority queue class implemented in Java. These classes can be found at git.charlesreid1.com: https://charlesreid1.com:3000/cs/java/src/master/priority-queues/PriorityQueueBase.java
Two concrete priority queue classes and one abstract priority queue class implemented in Java. These classes can be found at git.charlesreid1.com: https://charlesreid1.com:3000/cs/java/src/master/priority-queues/PriorityQueueBase.java


===Java Collections Priority Queue===
==Java Collections Priority Queue==


You can also find an implementation of a Priority Queue in the Java Collections API.
You can also find an implementation of a Priority Queue in the Java Collections API.
Line 12: Line 12:


Link: http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html
Link: http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html
=Code=


==Priority Queue Base Class==
==Priority Queue Base Class==
Line 35: Line 37:
Fast add, slow remove.
Fast add, slow remove.


==Flags==
=Flags=


{{StacksQueuesFlag}}
{{StacksQueuesFlag}}

Revision as of 04:08, 22 June 2017

Links

My Priority Queue API

Two concrete priority queue classes and one abstract priority queue class implemented in Java. These classes can be found at git.charlesreid1.com: https://charlesreid1.com:3000/cs/java/src/master/priority-queues/PriorityQueueBase.java

Java Collections Priority Queue

You can also find an implementation of a Priority Queue in the Java Collections API.

Source: http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/ff6c76f7733e/src/share/classes/java/util/PriorityQueue.java

Link: http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html

Code

Priority Queue Base Class

PriorityQueueBase class: https://charlesreid1.com:3000/cs/java/src/master/priority-queues/PriorityQueueBase.java

This base class is an abstract class that defines a key-value item utility class, defines a few simple methods, and requires base classes to implement several other methods.

Sorted Priority Queue

SortedPriorityQueue class: https://charlesreid1.com:3000/cs/java/src/master/priority-queues/SortedPriorityQueue.java

This class implements a sorted priority queue using an O(N) insertion sort for each add operation (start from the back, swap your way toward the front) and a built-in Java Collections API Linked List (a doubly-linked list).

Slow add, fast remove.

Unsorted Priority Queue

UnsortedPriorityQueue class: https://charlesreid1.com:3000/cs/java/src/master/priority-queues/UnsortedPriorityQueue.java

This class implements an unsorted priority queue that does not keep track of the minimum element and must perform an O(N) sequential search for each removal operation.

Fast add, slow remove.

Flags