Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda
|
|
- Artur Geier
- vor 7 Jahren
- Abrufe
Transkript
1 Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS ALP2-Vorlesung, M. Esponda
2 Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume Baumtraversierung Suchen Einfügen 5. Doppelt verkettete binäre Bäume Löschen 22. ALP2-Vorlesung, M. Esponda
3 Warum Bäume? Bäume sind fundamentale Datenstrukturen für: Betriebssysteme Datenbanken Übersetzerbau CFS von Linux (RB-Baum) B-Bäum, R-Bäume Abstrakte Syntaxbäume Textverarbeitung 3D Graphik-Systeme Datenkompression KI, Spiele Hofmann-Kodierung Entscheidungsbäume usw. 22. ALP2-Vorlesung, M. Esponda
4 Was ist ein Baum? Eine spezielle Graph-Struktur ohne Zyklen O1 Wurzel 1. Er hat eine Wurzel. O2 O3 2. Alle Knoten außer der Wurzel haben genau eine Verbindung O4 O5 O6 O7 mit einem Vorfahren. 3. Es existiert genau ein Weg O8 O9 O10 zwischen der Wurzel und jedem beliebigen Knoten. O11 O12 O13 O ALP2-Vorlesung, M. Esponda
5 Eigenschaften von Bäumen? Nehmen wir an, wir haben einen Baum t, dann gilt: t bezeichnet die Größe des Baumes t oder die gesamte Anzahl seiner Knoten. Die Tiefe (Level) eines Knotens ist sein Abstand zur Wurzel. Die Tiefe der Wurzel ist gleich 0. die Höhe h(t) ist der maximale Abstand zwischen der Wurzel und die Knoten. Blätter sind Knoten ohne Kinder. Die Pfadlänge des Baumes sei definiert als die Summe der Tiefen aller Knoten des Baumes. 22. ALP2-Vorlesung, M. Esponda
6 Eigenschaften von Bäumen Zwischen zwei beliebigen Knoten in einem Baum existiert genau ein Pfad, der sie verbindet. O1 Knoten O2 O3 Kanten O4 O5 O6 O7 O8 O9 O10 Ein Baum mit N Knoten hat N-1 Kanten. Blätter 22. ALP2-Vorlesung, M. Esponda
7 Binärbäume Bäume, in denen jeder Knoten höchstens zwei Kinder hat. Ein Binärbaum mit N inneren Knoten hat N+1 äußere Knoten oder Blätter. O5 Innere Knoten O9 O10 Blätter O11 O12 O13 O ALP2-Vorlesung, M. Esponda
8 Warum Bäume? Weil die Grundoperationen für dynamische Datenmengen damit viel effizienter realisiert werden können. Elementare Operationen für dynamische Mengen Suchen Einfügen Löschen Bäume kombinieren die Vorteile der zwei Datenstrukturen, die wir bereits diskutiert haben: Felder (Arrays) und Listen. 22. ALP2-Vorlesung, M. Esponda
9 Sortiertes Array mit n Elementen Binärsuche Suchen Kopf Sortierte Liste mit n Elementen n/ n/4 n/ Schlimmster Fall log 2 (n) Schritte O(log 2 n) Schlimmster Fall n Schritte O(n) 22. ALP2-Vorlesung, M. Esponda
10 Einfüge- und Lösch-Operationen (wenn die Position bereits bekannt ist) 7 Array Die Laufzeit hängt linear von der Länge der bereits gespeicherten Daten ab. 7 Liste Die Laufzeit ist immer konstant Schlimmster Fall n Schritte Schlimmster Fall O(n) 56 O(1) 22. ALP2-Vorlesung, M. Esponda
11 Liste Liste vs. Array n O1 O2 O3 O4 O5 O6 O7 O8 Array n O1 O2 O3 O4 O5 O6 O7 O8 Elementare Operationen für dynamische Mengen Liste sortiert nicht sortiert Array sortiert Suchen O(n) O(n) O(log 2 (n)) Einfügen O(n) O(1) O(n + log 2 (n)) Löschen O(n) O(n) O(n + log 2 (n)) 22. ALP2-Vorlesung, M. Esponda
12 Vollständige Binärbäume Ein vollständiger binärer Baum hat 2 h 1 innere Knoten und 2 h Blätter root n = 2 h+1-1 O1 Level 0 n + 1 = 2 h+1 O4 O2 O5 O6 O3 O7 Level 1 Level 2 h log 2 (n+1) = log 2 (2 h+1 ) log 2 (n+1) = h+1 O8 O9 O10 O11 O12 O13 O14 O15 Level 3 h = log 2 (n+1) ALP2-Vorlesung, M. Esponda
13 Eigenschaften von Binär Bäumen Rekursive Definitionen: Anzahl der inneren Knoten Höhe des Baumes Innere Pfadlänge des Baumes (Summe der Tiefen aller inneren Knoten) Pfadlänge der Blättern (Summe der Pfadlänge der Blättern) t = t l + t r + 1 h(t) = 1+ max(h(t l ) + h(t r )) π(t) = π(t l ) + π(t r ) + t 1 ξ(t) = ξ(t l ) + ξ(t r ) + t ALP2-Vorlesung, M. Esponda
14 Binärbäume Binärbäume einfachste Baumstrukturen ausgeglichene Bäume Beispiele: AVL-Bäume Red-Black-Bäume B-Bäume usw. Die wichtigste Voraussetzung für die effiziente Verwaltung von Datenmengen mit Hilfe von Bäumen ist, dass die Bäume balanciert sind. 22. ALP2-Vorlesung, M. Esponda
15 Binäre Suchbäume geordneter Baum mit maximal 2 Nachfolgern pro Knoten left O1 right Innere Knoten left O2 right left O3 right O4 O5 O6 O7 null null null null null null null null Blätter 22. ALP2-Vorlesung, M. Esponda
16 Wie können wir Binärbäume in Java implementieren? root O3 TreeNode-Klasse left right BinarySearchTree-Klasse O3 O3 null right left right Die Objekte werden nach einem Schlüssel einsortiert. O3 left O3 null O3 null null null null 22. ALP2-Vorlesung, M. Esponda
17 Beispiel: root K1 D1 TreeNode-Klasse left right BinarySearchTree-Klasse K2 D2 K3 D3 null right left right Die Objekte werden nach einem Schlüssel K einsortiert K4 D4 K5 D5 left null null null Datenobjekt D, das zum Schlüssel verbunden ist. K6 null D6 null 22. ALP2-Vorlesung, M. Esponda
18 Binäre Suchbäume. Sortierbare Schlüssel Daten public class BinarySearchTree <T extends Comparable<T>, D> implements Iterable<T> { private TreeNode root; private int size; // Anzahl der TreeNode-Objekten public BinarySearchTree() { // constructor root = null; size = 0; } public int size() { return size; } um for-each-schleifen verwenden zu können 22. ALP2-Vorlesung, M. Esponda
19 public class BinarySearchTree. class TreeNode { private T key; private D data; private TreeNode left; private TreeNode right; Binäre Suchbäume null T2 D2 T1 left right D1 right T3 left D3 right root TreeNode (T key, D data) { this.key = key; this.data = data; size++; } } // end of class TreeNode T6 null left null null null null T4 D4 T5 D5 D6 22. ALP2-Vorlesung, M. Esponda 5
20 Suchen 4 node root 11 left right 7 19 left right left right 3 left right 9 left right 14 left right 21 left right 1 4 null null 12 null null null left right left right left right null null null null null null 22. ALP2-Vorlesung, M. Esponda
21 Suchen Wenn node gleich null wird, befindet sich das Element nicht in dem Baum. node 4 root 11 left right 7 19 left right left right 3 left right 9 left right 14 left right 21 left right 1 4 null null 12 null null null left right left right left right null null null null null null 22. ALP2-Vorlesung, M. Esponda
22 public boolean contains(t key) { return getdata( key )!= null; } public D getdata(t key) { TreeNode node = root; while (node!= null) { int compare = key.compareto(node.key); if (compare < 0) } node = node.left; else if (compare > 0) node = node.right; else return node.data; } return null; 22. ALP2-Vorlesung, M. Esponda Binäre Suchbäume Ein Schlüssel wird gesucht Gibt die Daten, die mit einem Schlüssel verbunden sind, zurück oder null, wenn der Schlüssel nicht vorhanden ist.
23 Einfügen (rekursiv) insert(root, 4, data) root 11 D D2 D D4 D5 D6 D7 1 5 D8 D9 16 D0
24 Einfügen (iterativ) root insert(left, 4, data) 11 D D2 D D4 D5 D6 D7 1 5 D8 D9 16 D0
25 Einfügen (iterativ) root 11 D1 insert(left, 4, data) 7 19 D2 D D4 D5 D6 D7 1 5 D8 D9 16 D0
26 Einfügen (iterativ) root 11 D D2 D3 insert(right, 4, data) D8 D9 D4 D5 D6 D7 16 D0
27 Einfügen (iterativ) root 11 D D2 D D4 D5 D6 D7 1 5 insert(left, 4, data) D8 D9 16 D0 return 4 data
28 Einfügen (iterativ) root 11 D D2 D D4 D5 D6 D7 1 5 D8 D9 16 D0 4 data
29 Binäre Suchbäume public class BinarySearchTree <T extends Comparable<T>, D> public void store(t key, D data) { } root = insert( root, key, data ); implements Iterable<T>{ private TreeNode insert(treenode node, T key, D data) { } if (node == null) return new TreeNode(key, data); int compare = key.compareto(node.key); if (compare < 0) node.left = insert(node.left, key, data); else if (compare > 0) else node.right = insert(node.right, key, data); node.data = data; return node; Ein Schlüssel und das damit verbundene Daten-Objekt werden eingegeben Ein neues Objekt wird nach seinem Schlüssel in einem Blatt einsortiert. Wenn der Schlüssel bereits existiert, werden die Daten überschrieben.
30 Traversierung binärer Bäume Inorder Linker Unterbaum - Wurzel - Rechter Unterbaum F D I B E G J A C H A B C D E F G H I J
31 Implementierung einer Iterator-Klasse als Innere Klasse public class BinarySearchTree <T extends Comparable<T>, D> implements Iterable<T> {... public Iterator<T> iterator() { return new InorderIterator(); } Iterator-Klasse, die den Baum in sortierter Reihenfolge durchläuft. private class InorderIterator implements Iterator<T> { }... } 22. ALP2-Vorlesung, M. Esponda
32 Iterative Implementierung r Stapel s F x r t D w y I z u B E G J v q A C H
33 Iterative Implementierung r Stapel s F x r s t u t D w y I z u B E G J v q A C H
34 Iterative Implementierung r Stapel s F x r s t u t D w y I z u B E G J v q A C H
35 Iterative Implementierung r Stapel s F x r s t t D w y I z u B E G J v q A C H
36 Iterative Implementierung r Stapel s F x r s v t D w y I z u B E G J v q A C H
37 Iterative Implementierung r Stapel s F x r s t D w y I z u B E G J v q A C H
38 Iterative Implementierung r Stapel s F x r w t D w y I z u B E G J v q A C H
39 Iterative Implementierung r Stapel s F x r t D w y I z u B E G J v q A C H
40 Iterative Implementierung r Stapel s F x rx y t D w y I z u B E G J v q A C H
41 Implementierung einer Iterator-Klasse als Innere Klasse... private class InorderIterator implements Iterator<T> { }... private Stack<TreeNode> stack = new Stack<TreeNode>(); InorderIterator() { pushlefttree(root); } public boolean hasnext() { return!stack.isempty(); } public T next() { if (!hasnext()) throw new NoSuchElementException(); } TreeNode node = stack.pop(); pushlefttree(node.right); return node.key; public void pushlefttree(treenode node) { } while (node!= null) { stack.push(node); } node = node.left; public class NoSuchElementException extends RuntimeException public void remove() { throw new UnsupportedOperationException();}
42 Anwendungsbeispiel: public static void main(string[] args) { BinarySearchTree<Integer, String> st = new BinarySearchTree<Integer, String>(); st.store(43901, "Peter Meyer" ); st.store(43021, "Nils Meyer" ); st.store(43002, "Andre Meyer" ); st.store(43101, "Hans Meyer" ); st.store(43000, "Joachim Meyer" ); st.store(43501, "Carl Meyer" ); for(iterator<integer> iter = st.iterator(); iter.hasnext();) System.out.println(iter.next()); System.out.println("size = " + st.size()); } for (Integer s : st) { System.out.println(s); }
43 Minimum und Maximum 53 Der erste Knoten, der Minimum Maximum keine linken Kinder mehr hat, beinhaltet das kleinste Element ALP2-Vorlesung, M. Esponda
44 Nachfolger 1. Fall 53 Es gibt einen rechten Unterbaum Minimum
45 Nachfolger 2. Fall Es gibt keinen rechten Unterbaum Nachfolger Maximum 39 Wie können wir nach oben laufen?
46 Doppelt verkettete Bäume 53 parent O3 left right y node private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
47 Doppelt verkettete Bäume 53 parent 30 y 69 left O3 right node private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
48 Doppelt verkettete Bäume 53 parent O3 y node left right private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
49 Doppelt verkettete Bäume y 53 parent O3 node left right private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
50 Doppelt verkettete Bäume node y 53 parent O3 left right private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
51 node Doppelt verkettete Bäume y 53 parent O3 left right private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
52 node Doppelt verkettete Bäume y 53 parent O3 left right private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
53 Doppelt verkettete Bäume node y 53 Nachfolger parent O3 left right private class TreeNode { private T key; private D data; private TreeNode left private TreeNode right; private TreeNode parent; }
54 Delete-Operation ( Löschen ) 1. Fall Löschen eines Knotens ohne Kinder 2. Fall Löschen eines Knotens mit nur einem Kind null garbage garbage 46
55 3. Fall Löschen Löschen eines Knotens mit zwei Kindern Der Knoten, den man löschen möchte, wird durch seinen Nachfolger ersetzt Der Nachfolger von 27 ist das Minimum des rechten Unterbaumes. Das Minimum ist entweder ein Blatt oder hat maximal ein rechtes Kind.
56 Löschen 53 node y 30 left 46 x parent 32
57 Probleme mit einfachen binären Suchbäumen balancierter Binärbaum nicht balancierter Binärbaum
58 Lösungen AVL-Bäume Red-Black-Bäume AA-Bäume B-Bäume usw. Innerhalb der insert- und delete-operationen wird mit Hilfe von Rotationen die Balance des Baumes ständig wiederhergestellt. 53 x
59 Elementare Operationen für dynamische Mengen Liste Array Balancierter Binärbaum Schlimmster Fall Schlimmster Fall Schlimmster Fall Suchen O(n) O(log 2 (n)) O(log 2 (n)) Einfügen O(n) O(n) O(log 2 (n)) Löschen O(n) O(n) O(log 2 (n)) 22. ALP2-Vorlesung, M. Esponda
60 Farben R: 0 G: 51 B: 102 R: 153 G: 204 B: 0 R: 255 G: 255 B: 255 R: 0 G: 0 B: 0 R: 204 G: 0 B: 0 R: 255 G: 153 B: Fußzeile ALP2-Vorlesung, anpassen unter M. Esponda Ansicht -> Kopf- und Fußzeile 52
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
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
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
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
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
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
Mehr4.4.1 Implementierung vollständiger Bäume mit Feldern. Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
4.4 Implementierung von Bäumen 4.4.1 Implementierung vollständiger Bäume mit Feldern 1 3 2 7 9 3 4 8 5 17 12 10 6 7 8 13 11 18 9 10 Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
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
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
MehrAlgorithmen 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
MehrEinfü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
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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition
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:
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:
MehrEinfü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
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
MehrEinfü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
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
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
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,
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
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
MehrAlgorithmen 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
MehrVorlesung 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Ü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
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
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
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:
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
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
MehrEinführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 28, Seite 15 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
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
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
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
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
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,
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrKapitel 5: Iterierbare Container
Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrAlgorithmen 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
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
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
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrBäume und der Sequence ADT
Bäume und der Sequence ADT Motivation: Der Sequence ADT Bei der Vorstellung verschiedener Implementierungen für Stacks, Queues und Deques wurde vor allem auf die Unterschiede zwischen Arrays fester Größe,
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
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
MehrSuchbäume mit inneren Knoten verschiedener Knotengrade.
Was bisher geschah rekursive Datenstrukturen: lineare Datenstrukturen: Liste, Stack, Queue hierarchische Datenstrukturen: Bäume allgemeine Bäume Binäre Bäume Unäre Bäume = Listen Tiefe eines Knotens in
MehrAlgorithmen 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)
Mehr2 Java: Bäume. 2.1 Implementierung von Bäumen. 2.2 Implementierung eines binären Suchbaums. 2.3 Traversierung von Bäumen
2 2 Java: Bäume 2.1 Implementierung von Bäumen 2.2 Implementierung eines binären Suchbaums 2.3 Traversierung von Bäumen 2.4 Implementierung von Heapsort 19 Teil II Java: Bäume Überblick Implementierung
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
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
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Kapitel 3: Elementare Datenstrukturen Mariano Zelke Datenstrukturen 2/18 Einfach verkettete Listen Mariano Zelke Datenstrukturen 3/18 Eine Zeiger-Implementierung
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 10, Donnerstag 9.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 10, Donnerstag 9. Januar 2014 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.
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:
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
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
MehrB-Bäume. Suchbäume. Suchen, Einfügen, Löschen. Thomas Röfer. Balancierte Bäume (AVL-Bäume) Universität Bremen. Bäume 2
Bäume 2 Thomas Röfer Suchbäume Suchen, Einfügen, Löschen Balancierte Bäume (AVL-Bäume) B-Bäume Rückblick Bäume 1 Begriffe Durchlaufen von Bäumen Spielprobleme Eigene Züge Gegnerische Züge Eigene Züge Gegnerische
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
MehrInformatik 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,
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
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrIn C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:
Typprüfung (Compiler / Laufzeit) In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: 1) Der Compiler prüft
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
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
MehrBäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.
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),
MehrWintersemester 2018/19. Kapitel 14: Bäume
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 14: Bäume Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische Informatik Institut für
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume
1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten
Mehrpublic interface Stack<E> { public void push(e e); public E pop();
ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenstrukturen I: Lineare Sequenzen / Listen Datenstrukturen für Sequenzen Sequenzen in der Java-API:
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
MehrÜ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 (
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
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
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
MehrWas ist ein assoziativer Speicher?
Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 3 Assoziative Speicher
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
Mehr5.5 Prioritätswarteschlangen
5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte
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
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:
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
MehrInformatik II - Übung 07
Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und
MehrBä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
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu
Mehr