90 lines
2.2 KiB
Java
90 lines
2.2 KiB
Java
|
package com.jwetherell.algorithms.data_structures.interfaces;
|
||
|
|
||
|
/**
|
||
|
* A queue is a particular kind of abstract data type or collection in
|
||
|
* which the entities in the collection are kept in order and the principal (or
|
||
|
* only) operations on the collection are the addition of entities to the rear
|
||
|
* terminal position and removal of entities from the front terminal position.
|
||
|
* This makes the queue a First-In-First-Out (FIFO) data structure. In a FIFO
|
||
|
* data structure, the first element added to the queue will be the first one to
|
||
|
* be removed.
|
||
|
*
|
||
|
* http://en.wikipedia.org/wiki/Queue_(abstract_data_type)
|
||
|
*
|
||
|
* @author Justin Wetherell <phishman3579@gmail.com>
|
||
|
*/
|
||
|
public interface IQueue<T> {
|
||
|
|
||
|
/**
|
||
|
* Add a value to the beginning of the queue.
|
||
|
*
|
||
|
* @param value to add to queue.
|
||
|
* @return True if added to queue.
|
||
|
*/
|
||
|
public boolean offer(T value);
|
||
|
|
||
|
/**
|
||
|
* Remove a value from the tail of the queue.
|
||
|
*
|
||
|
* @return value from the tail of the queue.
|
||
|
*/
|
||
|
public T poll();
|
||
|
|
||
|
/**
|
||
|
* Get but do not remove tail of the queue.
|
||
|
*
|
||
|
* @return value from the tail of the queue.
|
||
|
*/
|
||
|
public T peek();
|
||
|
|
||
|
/**
|
||
|
* Remove the value from the queue.
|
||
|
*
|
||
|
* @param value to remove from the queue.
|
||
|
* @return True if the value was removed from the queue.
|
||
|
*/
|
||
|
public boolean remove(T value);
|
||
|
|
||
|
/**
|
||
|
* Clear the entire queue.
|
||
|
*/
|
||
|
public void clear();
|
||
|
|
||
|
/**
|
||
|
* Does the queue contain the value.
|
||
|
*
|
||
|
* @param value to find in the queue.
|
||
|
* @return True if the queue contains the value.
|
||
|
*/
|
||
|
public boolean contains(T value);
|
||
|
|
||
|
/**
|
||
|
* Get the size of the queue.
|
||
|
*
|
||
|
* @return size of the queue.
|
||
|
*/
|
||
|
public int size();
|
||
|
|
||
|
/**
|
||
|
* Validate the queue according to the invariants.
|
||
|
*
|
||
|
* @return True if the queue is valid.
|
||
|
*/
|
||
|
public boolean validate();
|
||
|
|
||
|
/**
|
||
|
* Get this Queue as a Java compatible Queue
|
||
|
*
|
||
|
* @return Java compatible Queue
|
||
|
*/
|
||
|
public java.util.Queue<T> toQueue();
|
||
|
|
||
|
/**
|
||
|
* Get this Queue as a Java compatible Collection
|
||
|
*
|
||
|
* @return Java compatible Collection
|
||
|
*/
|
||
|
public java.util.Collection<T> toCollection();
|
||
|
|
||
|
}
|