Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Operationen auf verketteten Listen

Ähnliche Präsentationen


Präsentation zum Thema: "Operationen auf verketteten Listen"—  Präsentation transkript:

1 Operationen auf verketteten Listen
Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert

2 Operationen auf verketteten Listen
3/27/2017 Operationen auf verketteten Listen TOP d1 d2 d3 d4 Löschen eines Elementes X (delete) TOP d1 d2 d3 d4 X Suchen nach zu löschendem Eintrag X: von TOP beginnend, Durchwandern der Next-Zeiger (2) Entfernen von X: Next(Vorgänger von X) = Nachfolge-Element von X Die Funktion INSERT fügt ein Element in die Liste ein. Dabei wird angenommen, dass FREE ein Index ist, der auf eine freie Speicherzelle in den Datenfeldern NAME und NEXT zeigt, und dass POSITION der Index des Elementes in der Liste ist, nach dem ITEM eingefügt werden soll. Eine vernünftige Implementierung dieses Algorithmus auf einer RAM Maschine führt auf eine Ausführungszeit für die Funktion INSERT, die unabhängig von der Größe der Liste ist. Beispiel: Angenommen ein Element Newitem soll nach dem Eintrag an der Stelle 2 in der Liste eingefügt werden, um dadurch die Liste (Element 1, Element 2, Newitem, Element 3, Element 4) zu erhalten. Falls die Zelle 5 in beiden Datenfeldern frei ist, dann kann der Eintrag Newitem nach dem 2-ten Listeneintrag eingefügt werden, indem wir die Funktion INSERT(Newitem, 5, 3) aufrufen. Die drei Anweisungen der Funktion INSERT setzten NAME[5] auf Newitem, NEXT[5] auf den Wert 4, und NEXT[3] auf den Wert 5. Die resultierende Liste ist dargestellt. Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert

3 Einfügen eines Elementes (insert) hinter Element Y
3/27/2017 Einfügen eines Elementes (insert) hinter Element Y Y TOP d1 d2 d3 d4 X x Erzeugen eines neuen Elementes X Suchen nach dem Element Y: von TOP beginnend, Durchwandern der Next-Zeiger (3) Einfügen von X nach Y: Next(X) = Next(Y) Next(Y) = X Die Funktion INSERT fügt ein Element in die Liste ein. Dabei wird angenommen, dass FREE ein Index ist, der auf eine freie Speicherzelle in den Datenfeldern NAME und NEXT zeigt, und dass POSITION der Index des Elementes in der Liste ist, nach dem ITEM eingefügt werden soll. Eine vernünftige Implementierung dieses Algorithmus auf einer RAM Maschine führt auf eine Ausführungszeit für die Funktion INSERT, die unabhängig von der Größe der Liste ist. Beispiel: Angenommen ein Element Newitem soll nach dem Eintrag an der Stelle 2 in der Liste eingefügt werden, um dadurch die Liste (Element 1, Element 2, Newitem, Element 3, Element 4) zu erhalten. Falls die Zelle 5 in beiden Datenfeldern frei ist, dann kann der Eintrag Newitem nach dem 2-ten Listeneintrag eingefügt werden, indem wir die Funktion INSERT(Newitem, 5, 3) aufrufen. Die drei Anweisungen der Funktion INSERT setzten NAME[5] auf Newitem, NEXT[5] auf den Wert 4, und NEXT[3] auf den Wert 5. Die resultierende Liste ist dargestellt. Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert

4 Einfügen eines Elementes (insert) hinter Element Y
3/27/2017 Einfügen eines Elementes (insert) hinter Element Y Y X TOP d1 d2 x d3 d4 Erzeugen eines neuen Elementes X Suchen nach dem Element Y: von TOP beginnend, Durchwandern der Next-Zeiger (3) Einfügen von X nach Y: Next(X) = Next(Y) Next(Y) = X Die Funktion INSERT fügt ein Element in die Liste ein. Dabei wird angenommen, dass FREE ein Index ist, der auf eine freie Speicherzelle in den Datenfeldern NAME und NEXT zeigt, und dass POSITION der Index des Elementes in der Liste ist, nach dem ITEM eingefügt werden soll. Eine vernünftige Implementierung dieses Algorithmus auf einer RAM Maschine führt auf eine Ausführungszeit für die Funktion INSERT, die unabhängig von der Größe der Liste ist. Beispiel: Angenommen ein Element Newitem soll nach dem Eintrag an der Stelle 2 in der Liste eingefügt werden, um dadurch die Liste (Element 1, Element 2, Newitem, Element 3, Element 4) zu erhalten. Falls die Zelle 5 in beiden Datenfeldern frei ist, dann kann der Eintrag Newitem nach dem 2-ten Listeneintrag eingefügt werden, indem wir die Funktion INSERT(Newitem, 5, 3) aufrufen. Die drei Anweisungen der Funktion INSERT setzten NAME[5] auf Newitem, NEXT[5] auf den Wert 4, und NEXT[3] auf den Wert 5. Die resultierende Liste ist dargestellt. Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert

5 Einfügen und Löschen auf doppelt verketten Listen
3/27/2017 Einfügen und Löschen auf doppelt verketten Listen (1) Einfügen eines Elementes P zwischen X und Y X Y P FREI (1) P  FREI (2) LLINK (P) = X (3) RLINK (P) = RLINK (X) (4) LLINK (RLINK (X)) = P (5) RLINK (X) = P Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert

6 Einfügen und Löschen auf doppelt verketten Listen
3/27/2017 Einfügen und Löschen auf doppelt verketten Listen (2) Löschen von Element X X vorher nachher FREI (1) RLINK (LLINK (X)) = RLINK (X) (2) LLINK (RLINK (X)) = LLINK (X) (3) FREI  X Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert


Herunterladen ppt "Operationen auf verketteten Listen"

Ähnliche Präsentationen


Google-Anzeigen