In doppelt verketteten Listen, die keine Unterscheidung in eine Listenklasse
und eine Listenelementsklasse machen, werden this
-Zeiger in der
Regel benötogt.
Dieses Beispiel wird hier nur kurz angedeutet. Komplexe verkettete
Listen sollten, wie im nächsten Abschnitt an einem kleinen Beispiel demonstriert
über oben erwähnte Trennung, implementiert werden.
class Liste { Liste* vor; // Vorgaenger Liste* nach; // Nachfolger public: T inhalt; void append(Liste* m); Liste(T i) : inhalt(i) { vor = nach = this; } } void Liste::append(T m) { // -> vor -> this -> nach -> Liste* l = new Liste; l->nach = nach; l->vor = this; nach->vor = l; nach = l; l->inhalt = m; // -> vor -> this -> l -> nach -> } T a, b, c; Liste liste(a); liste.append(b); liste.append(c);