/** * 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 { /** * 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 true if this collection contains no elements. * * @return true 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(); }