46 lines
1.2 KiB
Java
46 lines
1.2 KiB
Java
package net.datastructures;
|
|
//begin#fragment Deque
|
|
/**
|
|
* Interface for a deque: a collection of objects that are inserted
|
|
* and removed at both ends; a subset of java.util.LinkedList methods.
|
|
*
|
|
* @author Roberto Tamassia
|
|
* @author Michael Goodrich
|
|
*/
|
|
|
|
public interface Deque<E> {
|
|
/**
|
|
* Returns the number of elements in the deque.
|
|
*/
|
|
public int size();
|
|
/**
|
|
* Returns whether the deque is empty.
|
|
*/
|
|
public boolean isEmpty();
|
|
/**
|
|
* Returns the first element; an exception is thrown if deque is empty.
|
|
*/
|
|
public E getFirst() throws EmptyDequeException;
|
|
/**
|
|
* Returns the last element; an exception is thrown if deque is empty.
|
|
*/
|
|
public E getLast() throws EmptyDequeException;
|
|
/**
|
|
* Inserts an element to be the first in the deque.
|
|
*/
|
|
public void addFirst (E element);
|
|
/**
|
|
* Inserts an element to be the last in the deque.
|
|
*/
|
|
public void addLast (E element);
|
|
/**
|
|
* Removes the first element; an exception is thrown if deque is empty.
|
|
*/
|
|
public E removeFirst() throws EmptyDequeException;
|
|
/**
|
|
* Removes the last element; an exception is thrown if deque is empty.
|
|
*/
|
|
public E removeLast() throws EmptyDequeException;
|
|
}
|
|
//end#fragment Deque
|