Operationen auf verketteten Listen

Slides:



Advertisements
Ähnliche Präsentationen
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
Advertisements

Algorithm Engineering
Eine dynamische Menge, die diese Operationen unterstützt,
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
7. Natürliche Binärbäume
Prioritätswarteschlangen
Seminar Textmining WS 06/07 Aufgaben IV Postings Datei Clustering Probabilistisches Information Retrieval.
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 5. Stacks und Queues
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Synonyme: Stapel, Keller, LIFO-Liste usw.
Gliederung Motivation / Grundlagen Sortierverfahren
Sortieren mit Binären Bäumen
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-3 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Fibonacci-Heaps – Analyse) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Ü6 Wendet den Scan-Line Algorithmus auf unten stehende Situation.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Externe Datenstruktur lineare Liste
Einfügen am Ende der Liste Vorher: Nachher:. Einfügen am Ende der Liste //Klasse Knoten public Knoten hintenEinfuegen(Datenelement dneu) { nachfolger.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Kapitel 2: Datenstrukturen
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik WS 200^8 Dr. Wieland Schwinger
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 13: (Container-)Datenstrukturen.
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
... Unternehmens- leitung
Diskrete Mathematik II
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmiersprache C 4
1.6 Die Datenstruktur Stapel Ein Stapel (Stack) ist ein Sonderfall einer Liste. Die Elemente werden nach dem Prinzip LIFO (Last In First Out) angefügt.
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Programmieren in C Dynamische Listen / Bäume
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Externspeicher- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Grundlegendes zu Formeln u. Funktionen
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Übung5 Prüft, ob sich folgende Segmente schneiden: –P1(1/7) P2(3/1)
Programmiersprachen II Fortsetzung Datenstrukturen Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Tutorium Software-Engineering SS14 Florian Manghofer.
Programmieren in C Dynamische Listen / Bäume
Klausur „Diskrete Mathematik II“
Heap Operationen Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert.
 Präsentation transkript:

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

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

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

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

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

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