Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel
|
|
- Jesko Kohler
- vor 5 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1
2 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume aufstellen können und die Komplexität der Suche bestimmen können 2
3 Nicht-Lineare Datenstrukturen Bisher nur listenartige Strukturen betrachtet In Liste liegt jedes Element zwischen Vorgänger u. Nachfolger In Baum hat ein Element höchstens einen Vorgänger, aber evtl. mehrere Nachfolger Reihenfolge von oben nach unten wichtig: kein Element kann mehr als einen direkten Vorgänger haben Beziehung zw. Elementen entspricht in Realität oft der Beziehung "ist-teil-von" oder "ist-art-von" Baum eine der wichtigsten nicht-linearen Datenstrukturen Bäume erlauben Implementierung von Algorithmen, die viel schneller als solche sind, die lineare Datenstrukturen nutzen 3
4 Beispiele von Bäumen Stammbäume Unternehmenshierarchien DOM-Tree (bei HTML/XML) Verzeichnis-Struktur Arithmetische Ausdrücke Teile-Beziehungen (z.b. bei CAD) Objektorientierte Systeme (Klassenbibliotheken) Deutschland Vertrieb International Europa Asien Afrika 4
5 Bsp. Stammbaum eb_alchimist_stamm baum_517.jpg 5
6 Bsp. Rechenbaum ( ) * * 3 + * *
7 Bsp. DOM-Tree <html> <head> <title>beispiel</title> </head> <body> <h1>bla Blubb</h1> <div> Mehr Text im Absatz </div> </body> </html> html head body title h1 div #text #text #text HTML-Dokument aufgebaut als Baum mit Knoten (DOM) Wurzel (Root) in HTML ist <html>-element 7
8 Baum (Tree) Datenstruktur mit folgenden Eigenschaften: Es gibt genau eine Wurzel (root) Jeder Knoten (node), bis auf Wurzel, hat genau eine Kante zu einem Elternknoten (parent) Element wird dann auch als Kind (child) bezeichnet In Baum hat Element also höchstens einen Vorgänger, aber evtl. mehrere Nachfolger Jeder Knoten ohne Kinder heißt Blatt (leaf) Alle anderen Knoten sind innere Knoten Binärer Baum (Binary Tree) Jeder Knoten hat maximal zwei Kinder 8
9 Baum (Tree) 7 Wert 3 8 Linker Nachfolger Rechter Nachfolger 9
10 Binärer Baum Ist entweder leer oder besteht aus Wurzel mit linkem und rechtem binären Unterbaum Unterbäume können auch leer sein Kante Pfad Wurzel Innerer Knoten Niveau 0 Niveau 1 Niveau 2 Blatt Niveau 3 Teil-/Unterbaum 10
11 Grundbegriffe Pfad in Baum ist Folge von Knoten p 0,, p n, so dass jeweils p i Vater von p i+1 ist Knotenpaar (p i, p i+1 ) heißt Kante (für 0 ii nn) Kante: Verbindung eines Knotens zur Wurzel eines Unterbaums Länge eines Pfades: Anzahl der Kanten auf Pfad Niveau (level) eines Knotens Länge des Pfades von Wurzel bis zum Knoten Höhe h eines Baums Größtes Niveau eines Knotens plus 1 Anzahl Knoten in längstem Pfad von Wurzel bis Blatt 11
12 Bäume N-ärer Baum: maximal N direkte Kinder Geordneter Baum Unter Kindern gibt es bestimmte Reihenfolge Unausgewogener bzw. nicht ausgeglichener Baum Niveau-Differenz zweier Blattknoten ist größer als eins Vollständiger Baum Jeder Pfad von Wurzel zu einem Blatt ist gleichlang Alle Blätter haben gleiches Niveau und alle möglichen Kinder sind vorhanden Anzahl n der Knoten in vollständigem Binärbaum der Höhe h: nn = 2 h 1 h = log 2 (nn + 1) 12
13 Übung Höhe eines vollständigen binären Baumes berechnen Wie viele Knoten hat ein vollständiger binärer Baum der Höhe 3? 13
14 Traversierung Datenstruktur in bestimmter Reihenfolge durchlaufen Bei binären Bäumen folgende Möglichkeiten (Start mit Wurzelknoten): Pre-order (Knoten links rechts) Post-order (links rechts Knoten) In-order (links Knoten rechts) Level-order Level Order 14
15 Traversierung Pre-order (K l r) Zuerst Knoten (K) besuchen (d.h. etwas damit tun), anschließend zuerst linken (l), dann rechten (r) Teilbaum besuchen Post-order (l r K) Zuerst linken (l), dann rechten (r) Teilbaum besuchen und anschließend Knoten (K) selbst In-order (l K r) Zuerst linken (l) Teilbaum, dann Knoten (K) und anschließend rechten (r) Teilbaum besuchen Level-order Beginnend bei Wurzel (Root) werden die Ebenen von links nach rechts durchlaufen (sog. Breitensuche) Tiefensuche 15
16 Traversierung - Beispiel Pre-order: Post-order: 5 In-order:
17 Bäume traversieren Pre-order (rekursiv): Algorithmus preorder( knoten ) print( knoten ) if knoten.links null then preorder( knoten.links ) if knoten.rechts null then preorder( knoten.rechts ) F, B, A, D, C, E, G, I, H 18
18 Übung 1 (Traversieren) Post-order (rekursiv): Algorithmus postorder( knoten ) if knoten.links null then postorder( knoten.links ) if knoten.rechts null then postorder( knoten.rechts ) print( knoten ) A, C, E, D, B, H, I, G, F Was müsste man hier für In-Order ändern? 19
19 Anwendung Post-Order Anwendung der Postorder-Traversierung Umgekehrte polnische Notation (UPN) * 3 2 * + Rekursive Operation liefert Wert von Unterbaum zurück Bei Verarbeitung innerer Knoten (Operator) werden Werte beider Teilbäume kombiniert (Zahlenwerte in Blättern)
20 Queue aus Baum erzeugen (Level-Order) Algorithmus levelorder(root) q createqueue() enqueue(q, root) while (!empty(q)) do node dequeue(q) print(node) if (node.left null) then enqueue(q, node.left) if (node.right null) then enqueue(q, node.right) 21
21 Umsetzung in C BINÄRBÄUME 22
22 Binäre Bäume Darstellung eines Baumes (Beispiel) 23
23 Binäre Bäume in C Graphische Darstellung eines Knotens Hinweis: data kann beliebiger Datentyp sein C-Code: struct node { int data; struct node *left; struct node *right; }; left data right struct node *root = NULL; 24
24 Implementierung in C typedef struct node { int data; struct node *left, *right; } Tree; Erzeugung eines Knotens: Tree *b = (Tree*)malloc(sizeof(Tree)); if (b!= NULL) { b->left = NULL; b->right = NULL; b->data = 42; } 25
25 SUCHBÄUME 26
26 Binärer Suchbaum Binärbaum heißt sortiert nach <, falls Ausgabe der Knoteninhalte beim Inorder-Durchlauf diese aufsteigend sortiert liefert Binärer Suchbaum ist spezielle Implementierung der abstrakten Datenstruktur Suchbaum Elemente eines binären Suchbaumes liegen sortiert vor Ausgehend von Wurzel kann jeder Knoten zwei Nachfolger haben Nachfolger sind in bestimmter Ordnung angegeben, z.b. in alphabetischer Häufig keine doppelten Elemente enthalten 27
27 Binärer Suchbaum Sonderform eines binären Baums bei dem Knoten des linken Teilbaums eines Knotens nur kleinere (oder gleiche) Schlüssel besitzen Knoten des rechten Teilbaums eines Knotens nur größere (oder gleiche) Schlüssel besitzen Suchen viel schneller als in anderen Datenstrukturen In einem wohl ausgewogenen Binärbaum (bester Fall) findet man in Komplexität O (log 2 n), was man sucht In degeneriertem Baum (schlechtester Fall) in O (n) Schlechtester Fall 28
28 Rekursive Suche Algorithmus BinTreeSR(k, x) Input Wurzel k des zu durchsuchenden Teilbaums, gesuchtes Element x Output Knoten mit gesuchtem Element bzw. NULL, wenn x nicht gefunden wurde if k = NULL return NULL else if x = k.data return k else if x < k.data then return BinTreeSR(k.left, x) else return BinTreeSR(k.right, x) 29
29 Beispiel adr1 9 Schritt k k.data adr2 adr adr adr5 30
30 Einfügen in binären Suchbaum Zum Einfügen wird passendes Blatt s gesucht Dazu wird bei jedem inneren Knoten der gespeicherte Wert betrachtet Dann Suche nach s im linken Unterbaum (Wert ist kleiner) oder im rechten Unterbaum (Wert größer) fortsetzen Anschließend wird Blatt s um beide Kinder erweitert und Wert in neuen Knoten eingefügt < 6 2 > > s s
31 Übung 1 Fügen Sie die Schlüssel 30, 40, 24, 58, 48, 26, 11, 13 in genau dieser Reihenfolge in einen Anfangs leeren binären Suchbaum ein Zeichnen Sie den resultierenden binären Suchbaum Lösung:
32 Übung 2 Beispiel für Aufbau eines Suchbaums: is now the for men of time all good party their to aid come 1. Wortweise einsortieren: now is the time for all good men to come to the aid of their party 2. Ggfs. zählen, wie oft Wort vorkommt 33
33 C: Knoten sortiert einfügen void insert(tree **b, int i) { if (*b == NULL) *b = create(i); else { if ((*b)->data > i) Enthält Adresse insert(&((*b)->left), i); else insert(&((*b)->right), i); } } 34
34 Exkurs: AVL-Bäume Laufzeit bei binärem Suchbaum in ungünstigstem Fall linear von Anzahl Knoten abhängig ( nicht besser als listenbasierte Implementierung!) AVL-Baum ist binärer Suchbaum, bei dem sich für jeden inneren Knoten Höhen beider Kinder höchstens um 1 unterscheiden AVL-Bäume (Adelson-Velski und Landis, 1962) sind balancierte Suchbäume Jeder Unterbaum eines AVL-Baums ist wieder AVL-Baum Worst-Case-Performance: O(log 2 n) Beispiel siehe rechts: Neben Knoten stehen jeweilige Höhen Höhe eines Knotens definiert als maximaler Abstand zu Blatt
35 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume aufstellen können und die Komplexität der Suche bestimmen können 36
36 FRAGEN? 37
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
MehrNatü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
MehrTeil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1
Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene
MehrInformatik 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:
MehrInformatik 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
MehrAlgorithmen 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
Mehr18. 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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 216 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Vorstellung des 6. Übungsblatts. Hashing Binäre Suchbäume AVL-Bäume 2 Aufgabe: Hashing mit
Mehr9. 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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste
MehrEinfache 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,
Mehr7. 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
MehrDatenstrukturen. 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
MehrTrees. 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
MehrDatenstrukturen und Algorithmen SS07
Datenstrukturen und Algorithmen SS07 Datum: 25.4.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Nachbesprechung Serie 4 Challenge der Woche Traversierung von Bäumen Pre-,
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
MehrTrees. 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Binäre Bäume Zum Speichern und Suchen von Daten werden häufig Baumstrukturen verwendet Abspeichern von n Datenobjekten in einer Baumstruktur Ablegen von Daten ist in O(log(n))
MehrVorlesung 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
MehrMotivation Binäre Suchbäume
Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in
MehrAlgorithmen 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
MehrChristian 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
MehrInformatik 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:
Mehr13. Bäume: effektives Suchen und Sortieren
13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:
Mehr13. Bäume: effektives Suchen und Sortieren
Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder
MehrTechnische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter
Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam
MehrInformatik 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
MehrBäume, Anwendung und Begriffe
Bäume Sie wissen, was Bäume in der Informatik sind Sie kennen das Besucher-Entwurfsmuster Sie kennen Binärbäume Sie können die Bäume auf unterschiedliche Arten traversieren Sie wissen, wie man in Binärbäumen
Mehr18. 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
MehrWiederholung. 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
MehrAlgorithmen 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
MehrBä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
MehrDatenstrukturen 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
Mehrelementare 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
Mehr1 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
MehrSoftware 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,
MehrKomplexitä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
Mehr1 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
MehrLogische Datenstrukturen
Lineare Listen Stapel, Warteschlangen Binärbäume Seite 1 Lineare Liste Begriffe first Funktion: sequentielle Verkettung von Datensätzen Ordnungsprinzip: Schlüssel Begriffe: first - Anker, Wurzel; Adresse
MehrSuchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen
Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda
MehrB6.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
MehrAlgorithmen 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
MehrBäume 1. Thomas Röfer
Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra
MehrAlgorithmen und Datenstrukturen 1-5. Seminar -
Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung
MehrProgrammiertechnik 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,...
MehrAnwendungsbeispiel 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
MehrPro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik
Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:
MehrAufgaben, 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
MehrDatenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung
Traversierung Datenstrukturen Teil 3 Traversierung und AVL- Bäume Traversierung: bezeichnet verschiede Verfahren einer Routenbestimmung durch baumförmige Graphen Dabei wird jeder Knoten und jede Kante
MehrProgramm 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
MehrRotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y
Die AVL-Eigenschaft soll bei Einfügungen und Streichungen erhalten bleiben. Dafür gibt es zwei mögliche Operationen: -1-2 Rotation Abbildung 3.1: Rotation nach rechts (analog links) -2 +1 z ±1 T 4 Doppelrotation
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume
Algorithmen und Datenstrukturen 22. März 2018 B3. Verkettete Listen und Bäume Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume B3.1 Einführung Marcel Lüthi and Gabriele Röger B3.2 Verkettete
MehrÜbung Datenstrukturen. Bäume
Übung Datenstrukturen Bäume Übung Binärbaum 7 2 10 1 3 5 9 34 8 7 11 13 17 7 25 19 3 Aufgabe 1 Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an! Übung Binärbaum Aufgabe
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume Marcel Lüthi and Gabriele Röger Universität Basel 22. März 2018 Einführung Abstrakter Datentyp / Datenstruktur Abstrakter Datentyp Eine Menge
MehrLineare Liste. struct list_element { float f; /* weitere Elemente */ struct list_element *next; /* Zeiger auf Nachfolger-Element */ }; Peter Sobe
Lineare Liste Zeigertechnik zum dynamischen Herstellen und Lösen von Verbindungen zwischen Datenelementen Einsatz des Verbundtyps struct {...} in Kombination mit Zeigern. Da das Element selbst eine Struktur
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
MehrIdee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10
Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien
MehrBinä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,
MehrAlgorithmen 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
Mehr3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
MehrDatenstrukturen & 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
MehrWiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
MehrDatenstrukturen und Algorithmen. Vorlesung 14
Datenstrukturen und Algorithmen Vorlesung 14 Inhaltsverzeichnis Vorige Woche: Binäre Suchbäume AVL Bäume Heute betrachten wir: AVL Bäume Prüfung AVL Bäume Definition: Ein AVL (Adelson-Velskii Landis) Baum
MehrBäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe
Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe S. Staab, Informatik für IM II; Folien nach D. Saupe, sowie W. Küchlin, A.
Mehr4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.
4.3 Bäume Bäume sind eine sehr wichtige Datenstruktur der Informatik. Definition des Baumes Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante verbindet genau
MehrInformatik 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
Mehr13. 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),
MehrEINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18
EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Mehr10. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 10. Hausübung Algorithmen und Datenstrukturen Sommersemester 2009 Abgabetermin: Montag, 22.06.2009, 10:00 Uhr 15.06.2009
Mehrtype Subtrees is array (Natural range < >) of Kptr; type Ktree (Arity: Natural) is record content : SomeType; children : Subtrees (1..
3.4 Darstellung von Bäumen Darstellung von k-beschränkten Bäumen: Mit wenigen Knoten und/oder kleinem k durchaus adäquat mit folgender Darstellung: type KTree; type KPtr is access KTree; type KTree is
Mehr5 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,
MehrDefinition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:
2.1.2 Rot-Schwarz-Bäume Definition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 1 alle Blätter hängen an schwarzen Kanten
MehrInformatik 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:
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrEINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrInformatik 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
MehrInformatik 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
MehrAuswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
MehrVorlesung 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
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum
lausthal Informatik II lausthal University, ermany zach@tu-clausthal.de Beispiele Stammbaum 2 1 Unix file hierarchy / Stammbaum (Evolution) bin aaclarke files mandel Point.java stock lib etc cs126 grades
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur
MehrÜ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
Mehr3.8 Bäume. Definition des Baumes
3.8 Bäume Definition des Baumes Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante verbindet genau zwei Knoten. Die Knoten (nodes) enthalten Datenelemente. Die
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester
Mehr7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
MehrBinä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
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte
MehrAlgorithmen 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