You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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();
}