Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Größe: px
Ab Seite anzeigen:

Download "Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps"

Transkript

1 // Mengen Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps n Ziel: ufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: n eines Elements n eines Elements n Suchen eines Elements n nforderung: effizient auch bei grossen Mengen! Mengen: nwendungen (I) n Telefonbuch (Menge von Namen mit zugehörigen Telefonnummern) n : Neue Telefonanschlüsse n : ufgegebene Telefonanschlüsse n Suchen: Telefonnummer einer Person Mengen: nwendungen (II) n Nutzerverwaltung (Menge von Nutzern mit Passwörtern und/oder weiteren Informationen) n : Neue Nutzer n : Ex-Nutzer n Suchen: Einloggen n Effizienz: Keine Wartezeit beim Einloggen, auch bei Millionen von Nutzern. Mengen: Lösung mit Listen n Menge wird als Liste gespeichert. n : zum Beispiel vorne anfügen (effizient) Mengen: Lösung mit Listen n Menge wird als Liste gespeichert. n : Durchlaufen der Liste bis zum Element (oder bis zum Ende, falls nicht vorhanden), Zeiger umhängen

2 // Mengen: Lösung mit Listen n Menge wird als Liste gespeichert. n Suchen: Durchlaufen der Liste bis zum Element (oder bis zum Ende, falls nicht vorhanden) Mengen: Lösung mit Listen n Falls die Menge n Elemente enthält, so ist der ufwand fürs Suchen eines Elements im schlimmsten Fall proportional zu n. n Facebook: Zeit zum Einloggen wäre proportional zur nzahl der Nutzer. Mengen: Lösung mit Listen n Beispiel: Suche nach den letzten 00 Elementen in einer Liste von 0,000,000 Elementen List l; for (int i=0; i< ; ++i) l.push_front(i); Facebook hat,000,000,000 Nutzer, eine Suche würde 6. Sekunden dauern! //...and search for the 00 first ones for (int i=0; i<00; ++i) 6. Sekunden l.find(i); Mengen: Lösung mit Listen n Beispiel: Suche nach den letzten 00 Elementen in einer Liste von 0,000,000 Elementen n Finden eines Elements: const Node* List::find (int key) for (const Node* p = head_; p!= 0; p = p>get_next()) if (p->get_key() == key) return p; return 0; Mengen: Lösung mit Binären Suchbäumen. n Falls die Menge n Elemente enthält, so ist der ufwand fürs Suchen eines Elements im schlimmsten Fall proportional zu log n. n Facebook: Zeit zum Einloggen ist proportional zum Logarithmus der nzahl der Nutzer. Mengen: Lösung mit Binären Suchbäumen. n Falls die Menge n Elemente enthält, so ist der ufwand fürs Suchen eines Elements im schlimmsten Fall proportional zu log n. n uch und geht in Zeit proportional to log n. log (,000,000,000) 0.

3 // Binärbäume, Definition und Terminologie n Ein binärer Baum ist entweder leer,... n oder er besteht aus einem Knoten (Kreis) n mit einem Schlüssel (hier: ganze Zahl),... n und einem linken und rechten Teilbaum, die jeweils Binärbäume sind. Wurzel des Baums Binäre Suchbäume n Ein Binärbaum heisst binärer Suchbaum, wenn er leer ist, oder wenn folgende Bedingungen gelten: n Sowohl der linke als auch der rechte Teilbaum sind binäre Suchbäume. n Der Schlüssel der Wurzel ist n > alle Schlüssel im linken Teilbaum, und n alle Schlüssel im rechten Teilbaum. Linker Teilbaum Rechter Teilbaum Beispiel? Blätter des Baums =? nein >? Nein, also muss die rechts sein. ja

4 // =? nein Ja, also muss die 8 links sein. >? nein 6 =? nein Ja, also muss die links sein. 6 >? nein 0? =? Ja, Schlüssel gefunden! 0 müsste links von der sein, Teilbaum ist aber leer 0 nicht da.

5 // Mengen: Lösung mit binären Suchbäumen Mengen: Lösung mit binären Suchbäumen n Speichere die Elemente der Menge als Schlüssel in einem binären Suchbaum! n Suchzeit ist proportional zur Höhe des Baums (Länge des längsten Pfades von der Wurzel bis zu einem Blatt). Höhe Mengen: Lösung mit binären Suchbäumen n Speichere die Elemente der Menge als Schlüssel in einem binären Suchbaum! n Suchzeit ist proportional zur Höhe des Baums (Länge des längsten Pfades von der Wurzel bis zu einem Blatt). n und von Elementen? n Neues Element suchen und als Blatt an der passenden Stelle anhängen! 0 einfügen 0 einfügen 0 müsste links von der sein, Teilbaum ist aber leer neues Blatt 0

6 // n Neues Element suchen und als Blatt an der passenden Stelle anhängen! n uch die Einfügezeit ist proportional zur Höhe des Baums. n Element suchen, seinen Knoten durch Rotationen zu einem Blatt machen, Blatt löschen! n Rotation: lokale Operation, welche die Positionen von Knoten verändert, nicht jedoch die Suchbaumeigenschaften. Rotation eines Teilbaums s Rechtsrotation Linksrotation t 8 löschen t s C B B C < t B < s C = < t B < s C 8 löschen 8 löschen 6 B und C sind leere Bäume 6 C 8 B Rechtsrotation (Linksrotation wäre auch möglich) Linksrotation (Rechtsrotation wäre auch möglich) B C 6

7 // 8 löschen 8 löschen 6, B, C sind leere Bäume 6 8 Rechtsrotation (Linksrotation wäre nicht möglich) B C delete 8 n Element suchen, seinen Knoten durch Rotationen zu einem Blatt machen, Blatt löschen! n Rotation: lokale Operation, welche die Positionen von Knoten verändert, nicht jedoch die Suchbaumeigenschaften. n uch die Löschzeit ist proportional zur Höhe des Baums (nicht mehr ganz so offensichtlich) Die Höhe eines binären Suchbaums... n bestimmt die Laufzeit des n Suchens, n s, n s. n kann aber bereits bei einer ungünstigen Einfügereihenfolge sehr gross werden! n Laufzeit im schlimmsten Fall nicht besser als bei einer Liste! Die Höhe eines binären Suchbaums... Beispiel: in sortierter Reihenfolge Höhe = n-, Baum sieht aus und verhält sich wie eine Liste. n bhilfe: Balancierung n Beim und stets darauf achten, dass der Baum balanciert ist, (d.h. keine grossen Höhenunterschiede zwischen linken und rechten Teilbäumen) n Verschiedene Möglichkeiten (mehr oder weniger kompliziert): n VL-Bäume, Rot-Schwarz-Bäume,... n Hier: Treaps (randomisierte Suchbäume)

8 // Treap = Tree + Heap n Ein Binärbaum heisst Heap, wenn er leer ist, oder wenn folgende Bedingungen gelten: n Sowohl der linke als auch der rechte Teilbaum sind Heaps. n Der Schlüssel der Wurzel ist n das Maximum aller Schlüssel. Heap: Schlüssel heissen Prioritäten n Ein Binärbaum heisst Heap, wenn er leer ist, oder wenn folgende Bedingungen gelten: n Sowohl der linke als auch der rechte Teilbaum sind Heaps. n Die Priorität der Wurzel ist n das Maximum aller Prioritäten. Heap: Beispiel Treaps 8 6 n Ein Binärbaum heisst Treap, wenn jeder Knoten einen Schlüssel und eine Priorität hat, so dass folgende Eigenschaften gelten: n Der Baum ist ein binärer Suchbaum bzgl. der Schlüssel. n Der Baum ist ein Heap bzgl. der Prioritäten. Treap: Beispiel Schlüssel Prioritäten Treaps: Eindeutigkeit,,, 6,,,,, n Satz: Für n Knoten mit verschiedenen Schlüsseln und Prioritäten gibt es genau einen Treap mit diesen Knoten. n Beweis: Die Wurzel ist der Knoten mit der höchsten Priorität; im linken Teilbaum sind alle Knoten mit kleineren und im rechten Teilbaum alle Knoten mit grösseren Schlüsseln. Mit Induktion sind die Teilbäume auch eindeutig. 8

9 // Treaps mit zufälligen Prioritäten n Wir benutzen einen Treap als binären Suchbaum. n Beim eines neuen Schlüssels wird seine Priorität zufällig gewählt. n Wie bei normalen binären Suchbäumen: neuer Knoten wird neues Blatt. n Zusätzlich muss die Treap-Eigenschaft wieder hergestellt werden! 0,., Neues Blatt Treaps:,,,, Priorität. 6,,, Treaps: Treaps:, Priorität., Priorität.,,, 6,,, 6,, Heap-Eigenschaft verletzt: <. 0,.,,, 0,.,,, Rechtsrotation! Treaps: Treaps:, Priorität., Priorität.,, 0,. 6,, 0,. Heap-Eigenschaft verletzt: <. 6,,,,,,,,,,

10 // Treaps: Treaps:, Priorität., Priorität., 0,. 0,. 6,,, 6,,,,,,,,,, Rechtsrotation! Treaps: Treaps: 0,.,,,,, Heap-Eigenschaft ok, wir haben wieder einen Treap! Priorität. 6,,, n Element suchen, seinen Knoten durch Rotationen zu einem Blatt machen, Blatt löschen! n Stets so rotieren, dass der Knoten mit seinem Nachfolger höherer Priorität vertauscht wird. Das erhält die Heap- Eigenschaft. n Suchbaum-Eigenschaft gilt wieder nach des Blatts. Treaps: Laufzeit n Satz (Seidel, ragon 6): In einem Treap über n Knoten mit zufälligen Prioritäten ist der zeitliche ufwand für eine Einfüge-, Lösch- oder Suchoperation im Erwartungswert proportional zu log n. n Mehr dazu in der nächsten Stunde. Mengen: Lösung mit Treaps n Zur Erinnerung: Suche nach den letzten 00 Elementen in einer Liste von 0,000,000 Elementen List l; for (int i=0; i< ; ++i) l.push_front(i); //...and search for the 00 first ones for (int i=0; i<00; ++i) 6. Sekunden l.find(i); 0

11 // Mengen: Lösung mit Treaps n Neu: Suche nach den letzten 00 Elementen in einem Treap von 0,000,000 Elementen Treap t; for (int i=0; i< ; ++i) t.insert(i); //...and search for the 00 first ones for (int i=0; i<00; ++i) 0.0 Sekunden t.find(i); Sortieren mit Treaps n Folgerung: Durch einer Folge von n Zahlen in einen Treap mit zufälligen Prioritäten kann die Folge in Zeit proportional zu n log n sortiert werden. n Gleicher optimaler Proportionalitätsfaktor wie Mergesort n Das Treap-basierte Verfahren ist im wesentlichen äquivalent zu Quicksort. Treaps in C++ n ehnlich wie bei Listen: n Klasse TreapNode für die Knoten n Jeder TreapNode speichert ausser Schlüssel und Priorität zwei Zeiger auf TreapNodes (linkes und rechtes Kind = Wurzeln des linken und rechten Teilbaums) n Klasse Treap; jeder Treap ist durch einen Zeiger auf den Wurzelknoten repräsentiert. Node class TreapNode!! public:! // constructor! TreapNode( int key, int priority, TreapNode* left = 0, TreapNode* right = 0);!! // Getters! int get_key() const;! int get_priority() const;! const TreapNode* get_left() const;! const TreapNode* get_right() const;!!! private:! int key_;! double priority_;! Wie bei Facebook: Freunde dürfen TreapNode* left_;! auf private Daten und Methoden TreapNode* right_;!! friend class Treap;! (Mitgliedsfunktionen) zugreifen. ;! Die Viererbande + Wurzel class Treap public: // default constructor: // POST: *this is an empty tree Treap(); // copy constructor // POST *this is a copy of other Treap(const Treap& other); // assignment operator // Post: other was assigned to *this Treap& operator= (const Treap& other); Konstruktor Copy- Konstruktor Zuweisungsoperator void Treap::insert(const int key)!! insert (root_, key, std::rand());!! private Hilfsfunktion Zufällige Priorität // Destructor ~Treap(); private: TreapNode* root_; Destruktor Zeiger auf die Wurzel (0: leerer Treap)

12 //, 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf eine leere Blattposition., 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf eine leere Blattposition., 0 Damit das klappt, muss ein lias des entsprechenden Zeigers im Baum sein, keine Kopie!, 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf eine leere Blattposition., 0 Heap-Eigenschaft ist noch verletzt; das wird weiter oben in der Rekursion repariert., 0 8 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf einen Knoten., 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf einen Knoten., 0, 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); 0 8 insert (->right_, key, priority); rotate_left (); verweist auf einen Knoten., 0

13 //, 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf einen Knoten., 0, 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf einen Knoten., 0, 0 if (key < ->key_) insert (->left_, key, priority); rotate_right (); insert (->right_, key, priority); rotate_left (); verweist auf einen Knoten., 0 Fertig!

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Umstrukturierung durch Rotationen

Umstrukturierung durch Rotationen Umstrukturierung durch Rotationen (Folie 109, Seite 52 im Skript) P P T A A D B T B C C D Eine Rechtsrotation um T. Die Suchbaumeigenschaft bleibt erhalten. B, C, D können nur aus externen Knoten bestehen.

Mehr

7 Weitere Baumstrukturen und Heapstrukturen

7 Weitere Baumstrukturen und Heapstrukturen 7 Weitere Baumstrukturen und Heapstrukturen Man kann kurze Suchzeiten in Baumstrukturen erreichen durch Rebalancierung bei Einfügungen und Löschungen (AVL Bäume, gewichtsbalancierte Bäume, Bruderbäume,

Mehr

12/18/12 // POST: values of a and b are interchanged void swap (int& a, int& b) { int c = a; a = b; b = c;

12/18/12 // POST: values of a and b are interchanged void swap (int& a, int& b) { int c = a; a = b; b = c; Generische Funktionalität Generisches Programmieren Template-Funktionen, Template- Klassen, generisches Sortieren, Fibonacci- und Ackermann-Zahlen zur Kompilierungszeit n Viele Funktionen braucht man für

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 11 (1.6.2016) Binäre Suchbäume III Algorithmen und Komplexität Tiefe eines binären Suchbaums Worst-Case Laufzeit der Operationen in binären

Mehr

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

Informatik II Bäume zum effizienten Information Retrieval

Informatik II Bäume zum effizienten Information Retrieval lausthal Informatik II Bäume zum effizienten Information Retrieval. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Binäre Suchbäume (binary search tree, BST) Speichere wieder Daten als "Schlüssel

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile

Mehr

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16 Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 10 (28.5.2018) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Balancieren eines Suchbaums Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 396 Baumgestalt vs. Zeitkomplexität Vorteile eines ausgeglichenen binären Suchbaums

Mehr

Randomisierte Datenstrukturen

Randomisierte Datenstrukturen Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger.

Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Organisatorisches VL-10: inäre Suchbäume (Datenstrukturen und lgorithmen, SS 17) Gerhard Woeginger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11: 12:00 Übungen: Tim Hartmann,

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II und Red-Black-Trees Dr. Georg Sauthoff 1 AG Praktische Informatik July 1, SoSe 2011 1 gsauthof@techfak.uni-bielefeld.de Suchbäume (Indexdatenstrukturen) Zugriff in O(logn)

Mehr

Programmiertechnik II

Programmiertechnik II 2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure 7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

ADS 1: Algorithmen und Datenstrukturen

ADS 1: Algorithmen und Datenstrukturen ADS 1: Algorithmen und Datenstrukturen Teil IX Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 1 Dezember 017 [Letzte Aktualisierung: 04/1/017, 10:56]

Mehr

Prüfung Algorithmen und Datenstrukturen I

Prüfung Algorithmen und Datenstrukturen I Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2014/15 Prüfung Algorithmen und Datenstrukturen I Datum : 20.01.2015, 10:30 Uhr

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 15b (13.06.2018) Graphenalgorithmen IV Algorithmen und Komplexität Prims MST-Algorithmus A = while A ist kein Spannbaum do e = u, v ist

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I.6.5 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Hinweise zur Übungsklausur (Weitere) Traversierungen von Binärbäumen

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales 7.

Mehr

Literatur: Kapitel 2.1 des Skripts Rot-Schwarz-Bäume Kapitel 2.2 des Skripts Treaps Cormen. Kapitel 13, Red-Black-Trees

Literatur: Kapitel 2.1 des Skripts Rot-Schwarz-Bäume Kapitel 2.2 des Skripts Treaps Cormen. Kapitel 13, Red-Black-Trees Algorithmische Anwendungen WS 2006/2007 Praktikum 3: Aufgabe 1: Einfügen eines Knotens ist einen Rot-Schwarz-Baum Aufgabe 2: Erklärungen für die Beobachtungen auf Folie 2.1/67 Aufgabe 3: Zeige wie RB-DELETE-FIXUP

Mehr

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus Algorithmen verbrauchen Ressourcen Rechenzeit

Mehr

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die

Mehr

Prüfung Algorithmen und Datenstrukturen I

Prüfung Algorithmen und Datenstrukturen I Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2016/17 Prüfung Algorithmen und Datenstrukturen I Datum : 23.01.2017, 08:30 Uhr

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Christian Rieck, Arne Schmidt

Christian Rieck, Arne Schmidt Institute of Operating Systems and Computer Networks Algorithms Group Algorithmen und Datenstrukturen Wintersemester 207/208 Übung#5, 2.2.207 Christian Rieck, Arne Schmidt Bäume Satz Jeder gerichtete Baum

Mehr

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition. 1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13. November 2015 13. November 2015 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume

Mehr

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition. 1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 17. November 2017 17. November 2017 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

Mehr

Übung 4: Die generische Klasse AvlBaum in Java 1

Übung 4: Die generische Klasse AvlBaum in Java 1 Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 13. April 2018 1 Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf

Mehr

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Algorithmen und Datenstrukturen Kapitel 4: Suchverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen

Mehr

5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt:

5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: 5 Bäume 5.1 Suchbäume Sei ein geordneter binärer Wurzelbaum. Sei Abbildung der Knotenmenge eine in eine vollständig geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: Falls sortiert ist,

Mehr

Bäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Bäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang.   WS 07/08 Bäume Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Bäume kennen lernen 3 Bäume (abstrakt) Bäume sind

Mehr

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden 5.6.2 AVL-Bäume Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden AVL-Bäume, benannt nach ihren Erfindern G. M. Adelson- Velskii und E. M. Landis,

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen 5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

Mehr

elementare Datenstrukturen

elementare Datenstrukturen elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste

Mehr

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für balanciert: Balancierte Bäume Aufwand, ein Element zu finden, entspricht der Tiefe des gefundenen Knotens im worst case = Tiefe des Baumes liegt zwischen log N und N Definition für "balanciert": es gibt verschiedene

Mehr

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren

Mehr

Vereinfachen wir diese Rekursionsgleichung zunächst: E ˆT n = 1 n. = 1 n

Vereinfachen wir diese Rekursionsgleichung zunächst: E ˆT n = 1 n. = 1 n Problem: E(max{X, Y }) E(X ) + E(Y ) korrekt, aber zu ungenau. (Folie 83, Seite 41 im Skript) E(max{X, Y }) max{e(x ), E(Y )} genau genug, aber zu unkorrekt. Führe neue Zufallsvariablen ein: ˆT n = 2 Tn,

Mehr

Algorithmen und Datenstrukturen I Bruder-Bäume

Algorithmen und Datenstrukturen I Bruder-Bäume Algorithmen und Datenstrukturen I Bruder-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 11.12.2017 10:50 Algorithmen und Datenstrukturen I, Bruder-Bäume 1/24 Definition ein binärer Baum heißt ein Bruder-Baum,

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,

Mehr

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B4.1 Definitionen und Eigenschaften. B4.2 Traversierung. B4.

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B4.1 Definitionen und Eigenschaften. B4.2 Traversierung. B4. Algorithmen und Datenstrukturen 28. März 2019 B4. Intermezzo - Bäume Algorithmen und Datenstrukturen B4. Intermezzo - Bäume B4.1 Definitionen und Eigenschaften Marcel Lüthi and Gabriele Röger Universität

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2018/2019 Vorlesung#15, 18.12.2018

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente

Mehr

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form. für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die

Mehr

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B7.1 Einführung. B Bäume. B7.3 Rot-Schwarz Bäume

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B7.1 Einführung. B Bäume. B7.3 Rot-Schwarz Bäume B7. Balancierte Bäume a B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel a Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf

Mehr

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus 2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 7 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume

Mehr

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume. AVL-Bäume Treaps Splay-Bäume

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume. AVL-Bäume Treaps Splay-Bäume Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume AVL-Bäume Treaps Splay-Bäume B-Bäume M.O.Franz; Oktober 2007 Algorithmen und Datenstrukturen -

Mehr

Algorithmentheorie Treaps

Algorithmentheorie Treaps Algorithentheorie 04 - Treaps Prof. Dr. S. Albers Das Wörterbuch-Proble Gegeben: Universu (U,

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 6

Grundlagen der Algorithmen und Datenstrukturen Kapitel 6 Grundlagen der Algorithmen und Datenstrukturen Kapitel 6 Christian Scheideler + Helmut Seidl SS 2009 25.05.09 Kapitel 6 1 Priority Queue M: Menge von Elementen Jedes Element e identifiziert über key(e).

Mehr

Algorithmen I. Tutorium 1-6. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-6. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-6. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-23 Überblick 1 Binäre Suchbäume 2 Dennis Felsing Algorithmen I 2/20 Binäre

Mehr

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017 Trees November 14, 2017 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum

Mehr

Datenkapselung: public / private

Datenkapselung: public / private 627 18. Klassen Klassen, Memberfunktionen, Konstruktoren, Stapel, verkettete Liste, dynamischer Speicher, Copy-Konstruktor, Zuweisungsoperator, Destruktor, Konzept Dynamischer Datentyp Datenkapselung:

Mehr

Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume

Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 12./13. VO DAP2 SS 2009 28.5./2.6.2009 1 Motivation Warum soll

Mehr

Prüfung Informatik D-MATH/D-PHYS :00 17:00

Prüfung Informatik D-MATH/D-PHYS :00 17:00 Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,

Mehr

3. Funktionales Programmieren 3.2 Algorithmen auf Listen und Bäumen. Heapsort verfeinert die Idee des Sortierens durch Auswahl:

3. Funktionales Programmieren 3.2 Algorithmen auf Listen und Bäumen. Heapsort verfeinert die Idee des Sortierens durch Auswahl: Heapsort 3. Funktionales Programmieren 3.2 Algorithmen auf Listen und Bäumen Heapsort verfeinert die Idee des Sortierens durch Auswahl: Minimum bzw. Maximum wird nicht durch lineare Suche gefunden, sondern

Mehr

18. Vererbung und Polymorphie

18. Vererbung und Polymorphie 590 18. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume 591 -(3-(4-5))*(3+4*5)/6

Mehr

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017 Trees November 13, 2018 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume

Mehr

Bäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen

Bäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen 2 Ziele Bäume Standardimplementierungen für Bäume kennen lernen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 02/0 4 Bäume (abstrakt) Implementierung von Knoten Bäume

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 07 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 8 Votierung in der Woche vom 25.06.0729.06.07 Aufgabe 22 AVL-Bäume (a) Geben

Mehr

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen Algorithmen und Datenstrukturen 03. April 2019 B6. Symboltabellen a Algorithmen und Datenstrukturen B6. Symboltabellen 1 Marcel Lüthi and Gabriele Röger Universität Basel 03. April 2019 a Folien basieren

Mehr