Referat Listen Einfach und doppelt verkettete Listen in

  • Slides: 11
Download presentation
Referat: Listen Einfach und doppelt verkettete Listen in JAVA by Jens Weibler

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 =

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

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

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

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

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

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: //

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

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

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

Was ändert sich? Schema einer doppelt verketteten Liste mit Fuss Kopf Previous Data Next Fuss null