Struktur am Beispiel einer 1
Einfügen(neues element ) Aktiv Wartend knoten knoten 2
Einfügen(neues element ) Aktiv Wartend knoten knoten 3
Einfügen(neues element ) Aktiv Wartend knoten knoten 4
Aha, ich muss ein neues mit mir als Nachfolger machen und meinen Vorgänger darüber Bescheid geben: return = new knoten(this,); knoten knoten 5
Wie soll ich meinen neuen Nachfolger kennenlernen? Ich weiß es und sage es dir. LE ist dein neuer Nachfolger knoten knoten knoten 6
Hallo aufrufender Vorgänger, vielleicht weißt du es schon, aber ich wollte dir sagen, dass ich dein Nachfolger bin. nachfolger = neuernachfolger; Jetzt muss ich aber meinem Vorgänger Bescheid geben. 7
nachfolger = nachfolger; 8
erstes = Nachfolger; 9
- Sequenzdiagramm knoten 1 knoten 2 hinteneinfügen(neu) hinteneinfügen(neu) hinteneinfügen(neu) new() knoten 3 knoten 3 nächstersetzen() knoten 2 nächstersetzen() knoten 1 erstersetzen() 10
Vorteile und Nachteile Vorteile Das Einfügen und Entnehmen wird den knoten überlassen. Die knoten können auf unterschiedliche inhalte verweisen. Nachteile Alle aufgerufenen knoten blockieren durch ihr Warten auf Antwort Speicherplatz. Eine Lösung ohne rekursiven Ansatz, sondern das die sich darum kümmert, verhindert das. 11
Spezialfälle Unterschiede Art der Verkettung (einfach; doppelt mit Vor- und Nachgänger) Neue Elemente werden vorne hinzugefügt Neue Element werden hinten hinzugefügt Elemente werden automatisch vorne entnommen Elemente werden automatisch hinten entnommen 12
Sonderfall 1 Schlange (queue) FIFO First in, First Out Hinzufügen heißt put(newel) Entnehmen heißt put() 13
Informatik-11.Klasse Kompositum Sonderfall 2 Stapel (Stack) LIFO Last in, First Out Hinzufügen heißt push(newel) Entnehmen heißt pop() 14
Aufgabe (Das muss jeder können) Implementiere Eine Queue zur Verwaltung von Taxis (Nr, Name) mit Hilfe des Kompositum-Musters. Einen Stack zur Verwaltung von Fahrgästen (Name, Fahrziel). 15