elementare Datenstrukturen
|
|
- Hilke Schreiber
- vor 5 Jahren
- Abrufe
Transkript
1 elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber elementare Datenstrukturen p./40
2 KISS elementare Datenstrukturen p./40
3 KISS (Keep It Simple, Stupid) Immer die einfachste mögliche Datenstruktur benutzen! elementare Datenstrukturen p./40
4 (Container-)Datenstrukturen speichern große und variable Mengen zusammengehöriger Daten elementare Datenstrukturen p.3/40
5 (Container-)Datenstrukturen speichern große und variable Mengen zusammengehöriger Daten erleichtern deren Handhabung elementare Datenstrukturen p.3/40
6 (Container-)Datenstrukturen speichern große und variable Mengen zusammengehöriger Daten erleichtern deren Handhabung präsentieren die Daten in einer geeigneten Form für einen Algorithmus elementare Datenstrukturen p.3/40
7 (Container-)Datenstrukturen speichern große und variable Mengen zusammengehöriger Daten erleichtern deren Handhabung präsentieren die Daten in einer geeigneten Form für einen Algorithmus Hilfsmittel bei Effizienzabschätzungen elementare Datenstrukturen p.3/40
8 Arrays und Vektoren einfache Handhabung in den meisten Sprachen eingebaut Vektor = eindimensionales Array Beispiel Java: int a[] = new int[4]; a[3] = 47; int koelnisch_wasser = a[3]; elementare Datenstrukturen p.4/40
9 Terminologie: Graphen Knoten und Kanten a c d b e f elementare Datenstrukturen p.5/40
10 Terminologie: Graphen Knoten und Kanten a c d b e f gerichtete Kanten (Pfeile) elementare Datenstrukturen p.5/40
11 Terminologie: Graphen Knoten und Kanten a c d b e f gerichtete Kanten (Pfeile) elementare Datenstrukturen p.5/40
12 Listen elementare Datenstrukturen p.6/40
13 Listen gerichtete Graphen einfach verkettet: jeder Knoten besitzt einen Pfeil zu seinem Nachfolger doppelt verkettet: Pfeile zu Nachfolger und Vorgänger elementare Datenstrukturen p.7/40
14 Darstellung von Knoten in Java public class SListNode { public Object data; public SListNode next; } public class DListNode { public Object data; public DListNode prev, next; } elementare Datenstrukturen p.8/40
15 Einfügen in eine Liste gegeben: Knoten N, Vorgänger S S N S N N.next = S.next; S.next = N; elementare Datenstrukturen p.9/40
16 Einfügen in eine Liste gegeben: Knoten N, Vorgänger S S N S N N.next = S.next; S.next = N; N.prev = S; N.next.prev = N; elementare Datenstrukturen p.9/40
17 Entfernen von Listenelementen gegeben: Vorgänger S S S S.next = S.next.next; elementare Datenstrukturen p.0/40
18 Entfernen von Listenelementen gegeben: Vorgänger S S S S.next = S.next.next; S.next.prev = S; elementare Datenstrukturen p.0/40
19 Durchlaufen von Listen gegeben: Knoten N Nachfolger: N = N.next; Vorgänger: N = N.prev; elementare Datenstrukturen p./40
20 Komplexität: Vektor vs. Liste Liste Vektor einfach doppelt Speicherbedarf O(n) O(n) O(n) Aufbau O(n) O(n) O(n) Einfügen O(n) O() O() Löschen O(n) O() O() Nachfolger O() O() O() Vorgänger O() O(n) O() Zugriff O() O(n) O(n) Suche O(n) O(n) O(n) elementare Datenstrukturen p./40
21 Overhead von Datenstrukturen Aufwand zur Speicherung und Pflege der Datenstrukturen selbst geht ein in konstante Faktoren bei Komplexitätsbetrachtungen elementare Datenstrukturen p.3/40
22 (Mikro-)Optimierungen bei Listen zusätzlich gemerkte eferenz auf das Ende ermöglicht Anhängen in O() Länge der Liste merken unbenutzter Knoten am Anfang oder ingbildung erspart Spezialfälle elementare Datenstrukturen p.4/40
23 Bäume elementare Datenstrukturen p.5/40
24 Bäume gerichtete azyklische Graphen jeder Knoten besitzt höchstens einen Vorgänger (parent) jeder Knoten besitzt keinen, einen oder mehrere Nachfolger (childs) elementare Datenstrukturen p.6/40
25 Terminologie: Bäume Blattknoten (leaf): kein Nachfolger innere Knoten: alle außer den Blättern Wurzelknoten (root): einziger Knoten ohne Vorgänger Zweig (branch): Pfad von der Wurzel bis zu einem Blatt Schlüssel (key): in einem Knoten gespeicherter Wert L L L L elementare Datenstrukturen p.7/40
26 binäre Bäume jeder Knoten besitzt höchstens zwei Nachfolger Sortierung z.b.: Werte in den Blättern speichern Schlüssel von inneren Knoten so wählen, daß gilt: linker Teilbaum: alle Schlüssel kleiner oder gleich dem des Knotens rechter Teilbaum: alle Schlüssel größer als der des Knotens elementare Datenstrukturen p.8/40
27 Suche in binären Bäumen gegeben: gesuchter Schlüssel S, Wurzel C while (C null) (C is not leaf) do if S C.key then C C.left else C C.right end if end while if (C null) (C.key = S) then found else not found end if elementare Datenstrukturen p.9/40
28 Entartung von Bäumen Baum wird effektiv zu einfach verketteter Liste: Baum muß ausbalanciert werden elementare Datenstrukturen p.0/40
29 balancierte Bäume spezielle Algorithmen für Veränderungen am Baum der Baum bleibt immer (annähernd) ausbalanciert Beispiele: AVL-Trees -3-Trees -3-4-Trees ed/black-trees elementare Datenstrukturen p./40
30 ed/black-trees rote und schwarze Kanten Invarianten: alle Zweige haben die gleiche Anzahl schwarzer Kanten alle Blätter sind durch schwarze Kanten angebunden auf keinem Pfad folgen zwei rote Kanten direkt aufeinander längster Zweig höchstens doppelt so lang wie kürzester Zweig elementare Datenstrukturen p./40
31 B-Trees: Beispiel c a b d g h e f elementare Datenstrukturen p.3/40
32 B-Trees: Beispiel c a b d g h? e elementare Datenstrukturen p.3/40
33 B-Trees: Beispiel c a b d g h e f elementare Datenstrukturen p.3/40
34 B-Tree-Knoten in Java public class BTreeNode { Object key; BTreeNode left, right, parent; boolean isblack; } elementare Datenstrukturen p.4/40
35 Einfügen in B-Trees Phase I gegeben: neuer Knoten S. S suchen, fertig falls gefunden. letzten besuchten Knoten S merken 3. S durch neuen roten Knoten mit S und S als Nachfolger ersetzen (Schlüssel von : kleinerer der Werte S und S ) S S S elementare Datenstrukturen p.5/40
36 Einfügen in B-Trees Phase II P S S (Fall ) elementare Datenstrukturen p.6/40
37 Einfügen in B-Trees Phase II P P S S S S (Fall ) (Fall ) elementare Datenstrukturen p.6/40
38 Einfügen in B-Trees Phase II P P P S S S S S S (Fall ) (Fall ) (Fall 3) elementare Datenstrukturen p.6/40
39 Einfügen in B-Trees Phase II P P P (Fall ) (Fall ) (Fall 3) elementare Datenstrukturen p.6/40
40 Einfügen in B-Trees Phase II (a) Fall a: Links-otation P 3 4 elementare Datenstrukturen p.7/40
41 Einfügen in B-Trees Phase II (a) Fall a: Links-otation P P elementare Datenstrukturen p.7/40
42 Einfügen in B-Trees Phase II (a) Fall a: Links-otation P P elementare Datenstrukturen p.7/40
43 Einfügen in B-Trees Phase II (b) Fall b: echts-links-otation P 4 3 elementare Datenstrukturen p.8/40
44 Einfügen in B-Trees Phase II (b) Fall b: echts-links-otation P P elementare Datenstrukturen p.8/40
45 Einfügen in B-Trees Phase II (b) Fall b: echts-links-otation P P elementare Datenstrukturen p.8/40
46 Einfügen in B-Trees Phase II (b) Fall b: echts-links-otation P P P elementare Datenstrukturen p.8/40
47 Einfügen in B-Trees Phase II (b) Fall b: echts-links-otation P P P elementare Datenstrukturen p.8/40
48 Einfügen in B-Trees Phase II (3) Fall 3: neu kolorieren und aufwärts bewegen P 3 4 elementare Datenstrukturen p.9/40
49 Einfügen in B-Trees Phase II (3) Fall 3: neu kolorieren und aufwärts bewegen P P elementare Datenstrukturen p.9/40
50 Einfügen in B-Trees Phase II (3) Fall 3: neu kolorieren und aufwärts bewegen P P P =P = 4 elementare Datenstrukturen p.9/40
51 Einfügen in B-Trees Phase II (3) Fall 3: neu kolorieren und aufwärts bewegen P P P =P = 4 elementare Datenstrukturen p.9/40
52 Entfernen aus B-Trees Phase I gegeben: zu entfernender Wert S. Wert S im Baum suchen. Knoten S und Vorgänger P entfernen P S P S S S S S S short node elementare Datenstrukturen p.30/40
53 Entfernen aus B-Trees Phase II () elementare Datenstrukturen p.3/40
54 Entfernen aus B-Trees Phase II () () S 3 elementare Datenstrukturen p.3/40
55 Entfernen aus B-Trees Phase II () () (3) S 3 elementare Datenstrukturen p.3/40
56 Entfernen aus B-Trees Phase II () () (3) S 3 (4) elementare Datenstrukturen p.3/40
57 Entfernen aus B-Trees Phase II () Fall : otation und umfärben elementare Datenstrukturen p.3/40
58 Entfernen aus B-Trees Phase II () Fall : otation und umfärben elementare Datenstrukturen p.3/40
59 Entfernen aus B-Trees Phase II () Fall : otation und umfärben elementare Datenstrukturen p.3/40
60 Entfernen aus B-Trees Phase II () Fall : otation und umfärben elementare Datenstrukturen p.3/40
61 Entfernen aus B-Trees Phase II () Fall : Doppel-otation und umfärben S 3 elementare Datenstrukturen p.33/40
62 Entfernen aus B-Trees Phase II () Fall : Doppel-otation und umfärben S S 3 3 elementare Datenstrukturen p.33/40
63 Entfernen aus B-Trees Phase II () Fall : Doppel-otation und umfärben S S S elementare Datenstrukturen p.33/40
64 Entfernen aus B-Trees Phase II () Fall : Doppel-otation und umfärben S S S elementare Datenstrukturen p.33/40
65 Entfernen aus B-Trees Phase II () Fall : Doppel-otation und umfärben S S S elementare Datenstrukturen p.33/40
66 Entfernen aus B-Trees Phase II (3) Fall 3: neu kolorieren elementare Datenstrukturen p.34/40
67 Entfernen aus B-Trees Phase II (3) Fall 3: neu kolorieren elementare Datenstrukturen p.34/40
68 Entfernen aus B-Trees Phase II (3) Fall 3: neu kolorieren elementare Datenstrukturen p.34/40
69 Entfernen aus B-Trees Phase II (3) Fall 3: neu kolorieren elementare Datenstrukturen p.34/40
70 Entfernen aus B-Trees Phase II (4) Fall 4: otation S 3 elementare Datenstrukturen p.35/40
71 Entfernen aus B-Trees Phase II (4) Fall 4: otation 3 S 3 S elementare Datenstrukturen p.35/40
72 Entfernen aus B-Trees Phase II (4) Fall 4: otation 3 S 3 S elementare Datenstrukturen p.35/40
73 Komplexität: B-Tree B-Tree Liste sortierter Vektor Speicherbed. O(n) O(n) O(n) Aufbau O(n log n) O(n) O(n log n) Einfügen O(log n) O() O(n) Löschen O(log n) O() O(n) Nachfolger O(log n) O() O() Vorgänger O(log n) O() O() Suche O(log n) O(n) O(log n) elementare Datenstrukturen p.36/40
74 (Mikro-)Optimierungen bei Bäumen Nutzdaten auch in inneren Knoten speichern z.b. mit Liste kombinieren elementare Datenstrukturen p.37/40
75 to boldly go... Heaps Hash-Tabellen adix-bäume ange-trees, uad-trees etc.... elementare Datenstrukturen p.38/40
76 Fazit jede Datenstruktur hat spezifische Vor- und Nachteile es gibt keine universell einsetzbare Datenstruktur Datenstrukturen sind Baukästen Overhead nicht vergessen! elementare Datenstrukturen p.39/40
77 Viel Spaß am Gerät! elementare Datenstrukturen p.40/40
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:
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
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
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
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
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
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
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
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
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:
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
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
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
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. 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
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
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
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
MehrAlgorithmen 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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
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
MehrDynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
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
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
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,
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
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
Mehr8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
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
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
MehrWünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)
.6 Ausgeglichene Mehrweg-Suchbäume Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n) Methoden: lokale Transformationen (AVL-Baum) Stochastische
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:
MehrAVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38
AVL-Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum haben die Algorithmen Suchen,
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
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
MehrAlgorithmen und Datenstrukturen I AVL-Bäume
Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum
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
MehrGliederung. 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
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 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
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrInformatik 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
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
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
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
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
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
MehrSuchen 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,
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
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
MehrSuchbäume balancieren
Suchbäume balancieren Perfekte Balance: schwer aufrechtzuerhalten Flexible Höhe O(log n): balancierte binäre Suchbäume. Nicht hier (Variantenzoo). Flexibler Knotengrad: (a,b)-bäume. Grad zwischen a und
MehrAlgorithmen I. Sebastian Schlag Institut für Theoretische Informatik Web:
Algorithmen I Sebastian Schlag 12.06.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Sortierte
MehrDatenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
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
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
MehrAlgorithmen und Datenstrukturen 13
19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum
MehrJava. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java
Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 16 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Fragen zum zweiten Übungsblatt? 2. Vorbesprechung des dritten Übungsblatts 3. Beispielaufgaben
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
MehrMengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
// 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
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
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
MehrTutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT
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,...
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
MehrGeordnete Binärbäume
Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung
MehrDoppelt verkettete Listen (1)
Doppelt verkettete Listen (1) Verkettete Listen bestehen aus einer Menge linear angeordneter Objekte. Anordnung realisiert durch Verweise. Unterstützen Operationen Insert, Delete, Search, usw. (nicht unbedingt
MehrVL-11: Rot-Schwarz Bäume. (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs
VL-11: Rot-Schwarz Bäume (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs SS 2017, RWTH DSAL/SS 2017 VL-11: Rot-Schwarz Bäume 1/41 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer 4024 im
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
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 11
17. Januar 2012 1 Besprechung Blatt 10 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Hashing Kollisionsauflösung 4 Vorbereitung Blatt 11 Hinweise Zirkuläre Arrays
MehrContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
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 (
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
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.
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
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
MehrPhysikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
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.
MehrTutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden
Mehr