Referat Listen Einfach und doppelt verkettete Listen in











- Slides: 11
Referat: Listen Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Was sind Listen? l l Listen sind eindimensional verkettete Elemente Rekursive Datenstruktur: Liste = Element + Liste | Leer
Wofür kann man Listen verwenden? (Vorteile) l l Variable Anzahl von Elementen zur Laufzeit (Nachteil eines Arrays -> feste Länge) und somit auch keine Speicherverschwendung Beim Sortieren einer Liste werden Pointer verschoben, nicht die Daten selber!
Wie ist eine Liste aufgebaut? Eine einfach verkettete Liste l l l Eine Liste beginnt immer mit einem Kopf Dann folgen beliebig viele Elemente Das Ende bildet ein Verweis auf null Kopf Data Next null
Das ganze jetzt in JAVA public class Listen. Element { // Inhalt private object data; // nächstes Element private Listen. Element next = null; // Konstruktor public Listen. Element (object data, Listen. Element next) { this. data = data; this. next = next; } } public class Liste { // Kopf der linearen Liste private Listen. Element start = null; // liefert start zurück public Listen. Element get. Start () { return start; } }
Einfügen von Elementen (am Anfang einer Liste) Vorher: Kopf Data Next Nachher: Kopf Data null Next Data Next // Methode in Liste. java: public void vorne. Einfuegen (object data) { start = new Listen. Element (data, start); }
Einfügen von Elementen (am Ende oder im Inneren einer Liste) Vorher: Kopf Data Next Nachher: Kopf Data null Next Data Next // Methode in Listen. Element. java: public void einfuegen (object data) { next = new Listen. Element (data, next); } Data Next
Löschen eines Elements Kopf Data Next null // Methode in Listen. Element. java: // Entfernen des naechsten Elements public void loesche. Next () { if (next != null) next = next; }
Rekursives Durchgehen einer Liste am Beispiel to. String() // Methode in Liste. java: public String to. String () { return "[ " + start. to. String() + " ]"; } // Methode in Listen. Element. java: public String to. String () { if (next == null) { return data. to. String(); } else { return data. to. String() + ", " + next. to. String(); } }
Doppelt verkettete Listen l Wofür doppelt verkettete Listen? l l Möglichkeit bei einer sortierten Liste rückwärts zu suchen Direktes Anhängen/Löschen eines Elements am Ende (Benutzung als Puffer – FIFO)
Was ändert sich? Schema einer doppelt verketteten Liste mit Fuss Kopf Previous Data Next Fuss null











