Je pense que l'écriture de l'auteur est si bonne que je dois la sauvegarder.
Compréhension de cet exemple :
//Les paramètres de type ne peuvent pas utiliser de types de base. T et U sont en fait du même type.
// Chaque fois que de nouvelles données sont placées, elles deviennent un nouveau sommet. Poussez le sommet d'origine vers le bas et établissez un lien via le pointeur.
//La sentinelle de fin est un nœud créé par le constructeur par défaut qui est cohérent avec end() renvoyant true.
Copiez le code comme suit :
// : génériques/LinkedStack.java
// Une pile implémentée avec une structure liée interne.
paquets génériques ;
classe publique LinkedStack<T> {
classe statique privée Node<U> {
Article U ;
Noeud<U> suivant ;
Noeud() { élément = nul; suivant = nul }
Nœud (élément U, nœud <U> suivant) {
this.item = article ;
this.next = suivant;
}
boolean end() { return item == null && next == null }
}
private Node<T> top = new Node<T>(); // Fin de la sentinelle
public void push (élément T) {
top = new Node<T>(élément, top);
}
public Tpop() {
T résultat = top.item ;
si(!top.end())
top = top.next;
renvoyer le résultat ;
}
public static void main (String[] arguments) {
LinkedStack<String> lss = new LinkedStack<String>();
for(String s : "Phasers en état d'étourdissement!".split(" "))
lss.push(s);
Chaîne ss ;
while((ss = lss.pop()) != null)
System.out.println(ss);
//----- si mis un entier dans la LinkedList
LinkedStack<Integer> lii = new LinkedStack<Integer>();
pour (Entier i = 0; i < 10; i++){
lii.push(i);
}
Fin entière ;
while((end = lii.pop()) != null)
System.out.println(fin);
//----- fin du test entier !
}
}
/* Sortir:
étourdir!
sur
Phaseurs
*/