69 lines
2.3 KiB
Java
69 lines
2.3 KiB
Java
/**
|
|
* interface simplifiée pour un Deque, c'est-à-dire une file d'attente à double extrémité
|
|
*
|
|
* Pour éviter la lourdeur de l'interface Deque de l'API officielle, celle-ci limite
|
|
* cette dernière à 5 méthodes essentielles.
|
|
*
|
|
* La spécification de ces méthodes est essentiellement identique à celle des méthodes équivalentes
|
|
* dans Deque.
|
|
*
|
|
* Ici nous choisissons d'interdire null comme élément et de ne pas limiter la capacité de la deque.
|
|
* Nous ignorons ClassCastException qui n'est a priori pas possible d'obtenir en runtime avec javac sans contorsion.
|
|
*
|
|
* The javadoc is reproduced and adapted from source for your convenience below in the file, but in english.
|
|
*
|
|
* Il est recommandé d'ajouter un constructeur sans argument qui instancie un deque vide.
|
|
* Il est utile de surcharger toString() pour permettre d'afficher utilement la structure de donnée.
|
|
*Œ
|
|
* @author Luc Hernandez, Florent Madelaine.
|
|
* @See Java.util.Deque
|
|
*/
|
|
|
|
public interface MinimalDeque<E> {
|
|
|
|
/**
|
|
* Inserts the specified element at the front of this deque if it is
|
|
* possible to do so.
|
|
*
|
|
* @param e the element to add
|
|
* @throws NullPointerException if the specified element is null
|
|
* @throws IllegalArgumentException if some property of the specified
|
|
* element prevents it from being added to this deque
|
|
*/
|
|
void addFirst(E e);
|
|
|
|
/**
|
|
* Inserts the specified element at the end of this deque if it is
|
|
* possible to do so.
|
|
*
|
|
* @param e the element to add
|
|
* @throws NullPointerException if the specified element is null
|
|
* @throws IllegalArgumentException if some property of the specified
|
|
* element prevents it from being added to this deque
|
|
*/
|
|
void addLast(E e);
|
|
|
|
/**
|
|
* Returns <tt>true</tt> if this collection contains no elements.
|
|
*
|
|
* @return <tt>true</tt> if this collection contains no elements
|
|
*/
|
|
boolean isEmpty();
|
|
|
|
/**
|
|
* Retrieves and removes the first element of this deque.
|
|
*
|
|
* @return the head of this deque
|
|
* @throws NoSuchElementException if this deque is empty
|
|
*/
|
|
E removeFirst();
|
|
|
|
/**
|
|
* Retrieves and removes the last element of this deque.
|
|
*
|
|
* @return the tail of this deque
|
|
* @throws NoSuchElementException if this deque is empty
|
|
*/
|
|
E removeLast();
|
|
}
|