edu.princeton.cs.algs4
Class MinPQ<Key>
- java.lang.Object
-
- edu.princeton.cs.algs4.MinPQ<Key>
-
- Type Parameters:
Key- the generic type of key on this priority queue
- All Implemented Interfaces:
- java.lang.Iterable<Key>
public class MinPQ<Key> extends java.lang.Object implements java.lang.Iterable<Key>TheMinPQclass represents a priority queue of generic keys. It supports the usual insert and delete-the-minimum operations, along with methods for peeking at the minimum key, testing if the priority queue is empty, and iterating through the keys.This implementation uses a binary heap. The insert and delete-the-minimum operations take logarithmic amortized time. The min, size, and is-empty operations take constant time. Construction takes time proportional to the specified capacity or the number of items used to initialize the data structure.
For additional documentation, see Section 2.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
-
-
Constructor Summary
Constructors Constructor and Description MinPQ()Initializes an empty priority queue.MinPQ(java.util.Comparator<Key> comparator)Initializes an empty priority queue using the given comparator.MinPQ(int initCapacity)Initializes an empty priority queue with the given initial capacity.MinPQ(int initCapacity, java.util.Comparator<Key> comparator)Initializes an empty priority queue with the given initial capacity, using the given comparator.MinPQ(Key[] keys)Initializes a priority queue from the array of keys.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description KeydelMin()Removes and returns a smallest key on this priority queue.voidinsert(Key x)Adds a new key to this priority queue.booleanisEmpty()Returns true if this priority queue is empty.java.util.Iterator<Key>iterator()Returns an iterator that iterates over the keys on this priority queue in ascending order.static voidmain(java.lang.String[] args)Unit tests theMinPQdata type.Keymin()Returns a smallest key on this priority queue.intsize()Returns the number of keys on this priority queue.
-
-
-
Constructor Detail
-
MinPQ
public MinPQ(int initCapacity)
Initializes an empty priority queue with the given initial capacity.- Parameters:
initCapacity- the initial capacity of this priority queue
-
MinPQ
public MinPQ()
Initializes an empty priority queue.
-
MinPQ
public MinPQ(int initCapacity, java.util.Comparator<Key> comparator)Initializes an empty priority queue with the given initial capacity, using the given comparator.- Parameters:
initCapacity- the initial capacity of this priority queuecomparator- the order in which to compare the keys
-
MinPQ
public MinPQ(java.util.Comparator<Key> comparator)
Initializes an empty priority queue using the given comparator.- Parameters:
comparator- the order in which to compare the keys
-
MinPQ
public MinPQ(Key[] keys)
Initializes a priority queue from the array of keys.Takes time proportional to the number of keys, using sink-based heap construction.
- Parameters:
keys- the array of keys
-
-
Method Detail
-
isEmpty
public boolean isEmpty()
Returns true if this priority queue is empty.- Returns:
trueif this priority queue is empty;falseotherwise
-
size
public int size()
Returns the number of keys on this priority queue.- Returns:
- the number of keys on this priority queue
-
min
public Key min()
Returns a smallest key on this priority queue.- Returns:
- a smallest key on this priority queue
- Throws:
java.util.NoSuchElementException- if this priority queue is empty
-
insert
public void insert(Key x)
Adds a new key to this priority queue.- Parameters:
x- the key to add to this priority queue
-
delMin
public Key delMin()
Removes and returns a smallest key on this priority queue.- Returns:
- a smallest key on this priority queue
- Throws:
java.util.NoSuchElementException- if this priority queue is empty
-
iterator
public java.util.Iterator<Key> iterator()
Returns an iterator that iterates over the keys on this priority queue in ascending order.The iterator doesn't implement
remove()since it's optional.- Specified by:
iteratorin interfacejava.lang.Iterable<Key>- Returns:
- an iterator that iterates over the keys in ascending order
-
main
public static void main(java.lang.String[] args)
Unit tests theMinPQdata type.- Parameters:
args- the command-line arguments
-
-
DataMelt 3.0 © DataMelt by jWork.ORG