2009-08-08 11 views
0

Je dois écrire un très court morceau de code sur un deque, mais je ne suis pas sûr de savoir comment écrire le code pour les méthodes, si quelqu'un pouvait m'aider avec l'une des méthodes, (par exemple une méthode pour ajouter un objet à la fin de la deque) alors cela me permettrait de commencer. Je suis sûr que je pourrais gérer le reste des méthodes, juste au moment où je suis assez perplexe.Java Deque sans utiliser les classes existantes comme LinkedList?

+0

Pourquoi faites-vous cela? Quel est le problème avec l'utilisation de l'une des implémentations standard de Deque? –

Répondre

2

Je ne sais pas exactement ce que vous êtes après, mais les méthodes disponibles pour le Deque sont répertoriés dans les Javadoc

6

Deques sont généralement mis en œuvre sous forme de listes doublement chaînées. Vous implémentez une liste doublement chaînée en gardant une trace du premier et du dernier élément de la liste et en laissant chaque élément suivre son prédécesseur et son successeur.

public class Deque<T> { 
    private class Node { 
     Node(T value) { 
      this.value = value; 
     } 
     T value; 
     Node next, prev; 
    } 

    private Node first, last; 

    public void addFront(T value) { 
     Node oldFirst = first; 
     first = new Node(value); 

     // The old first item is now the second item, so its the successor of 
     // the new first item 
     first.next = oldFirst; 

     // if first was null before, that means the deque was empty 
     // so first and last should both point to the new item 
     if(oldFirst == null) { 
      last = first; 
     } else { 
      // If there previously was a first element, this element is 
      // now the second element and its prev field should point to 
      // the new first item 
      oldFirst.prev = first; 
     } 
    } 
} 
Questions connexes