Logbuch Datenstrukturen - Sommer 2019
16.07.2019:
Materialien und weitere Lektüre:
Besprechung von Übungsblatt 7 und von (Teilen) der Nachklausur von 201709.07.2019:
Materialien und weitere Lektüre:
Hashing mit Verkettung (Hashfunktionen), Hashing mit offener Adressierung (lineares Austesten, doppeltes Hashing), Analyse erwartete Laufzeit für Hashing mit Verkettung O(1+λ), erwartete Laufzeit doppeltes Hashing 1/(1-λ); Zusammenfassung Wörterbücher02.07.2019:
Materialien und weitere Lektüre:
(a,b)-Bäume ((a,b)-Eigenschaft, Tiefe, Suchstruktur, insert (Zellteilung), remove (Schlüsselklau, Fusion))25.06.2019:
Materialien und weitere Lektüre:
AVL-Bäume (Tiefe eines AVL-Baums mit n Schlüsseln ist höchstens 2 log(n); Lookup und Lazy Remove); Insert im AVL-Baum (Linksrotation, Rechtsrotation; Zick-Zick, Zack-Zack, Zick-Zack, Zack-Zick)- Folien Kapitel 3, Seiten 16-34
- Skript: Abschnitt 5.2
- Cormen, Leiserson, Rivest, Stein. Algorithmen - Eine Einführung. Kapitel 13 (dort werden Rot-Schwarz-Bäume beschrieben: alle Wörterbuchoperationen lassen sich wie für AVL-Bäume in logarithmischer Zeit ausführen)
- Dietzfelbinger, Mehlhorn, Sanders. Algorithmen und Datenstrukturen. Kapitel 7.1
18.06.2019:
Materialien und weitere Lektüre:
Wiederholung Algorithmus von Dijkstra für kürzeste Wege, Algorithmus von Jarnik-Prim für minimale Spannbäume; Algorithmus von Kruskal für minimale Spannbäume und Union-Find Datenstruktur; Binäre Suchbäume (lookup, insert, remove, sortieren); im Worst-Case zu große Tiefe- Folien Kapitel 2, Seiten 116-129
- Folien Kapitel 3, Seiten 1-15
- Skript: Abschnitt 4.6 und 5.1
- Cormen, Leiserson, Rivest, Stein. Algorithmen - Eine Einführung. Kapitel 21.3, 23.2 und 12
- Dietzfelbinger, Mehlhorn, Sanders. Algorithmen und Datenstrukturen. Kapitel 10.3, 11.2, 11.3, 11.4 (ohne Pfadkompression) und 7.1
11.06.2019:
Materialien und weitere Lektüre:
Priority-Queues und Heaps, Umsetzung von insert (repair_up), delete_max (repair_down), change_priority und remove; Tiefe eines Heaps, BuildHeap in Linearzeit, Heapsort; Anwendung im Algorithmus von Dijkstra für kürzeste Wege04.06.2019:
Materialien und weitere Lektüre:
Tiefensuche für gerichtete Graphen (Bestimmung der Kantentypen mit Anfang- und Ende-Nummerierung); Anwendungen für gerichtete Graphen (Ist ein Graph azyklisch? Berechne eine topologische Sortierung!); Breitensuche (Laufzeit, Baum kürzester Wege); Priority-Queues (insert, delete_max, change_priority, remove); Heaps (Heap-Struktur, Heap-Ordnung)28.05.2019:
Materialien und weitere Lektüre:
Tiefensuche für ungerichtete Graphen (Baumkanten und Rückwärtskanten, Wald der Tiefensuche, Bäume des Walds entsprechen den Zusammenhangskomponenten); Tiefensuche für gerichtete Graphen (Baumkanten, Vorwärtskanten, Rückwärtskanten, Querkanten)21.05.2019:
Materialien und weitere Lektüre:
Topologische Sortierung (Adjazenzlistendarstellung); Implementierung von Graphen (Adjazenzlisten und Adjazenzmatrix); Tiefensuche (Ariadne-Faden, Farbeimer, rekursive Implementierung)14.05.2019:
Materialien und weitere Lektüre:
Bäume (Operationen), Implementierungen von Bäumen (Elternarray, Binärbaum-Darstellung, Kind-Geschwister-Darstellung), Suche (Präorder, Postoder, Inorder, rekursive und nicht-rekursive Implementierung), Besuchsreihenfolge für Postorder und Präorder; Graphen (gerichtet, ungerichtet, Wege und Kreise)07.05.2019:
Listen (einfache Verkettung; schnelle Implementierung aller Operationen bis auf Suche); Stacks und Queues und Deques, Implementierung von Deques und Listen (zirkuläre Arrays, Speicherverwaltung über zwei Arrays Daten und Zeiger für Listen); gewurzelte Bäume (Definition, wichtige Begriffe und Operationen)Aufgrund von Verspätung des Aufnahmepersonals fand leider keine Videoaufzeichnung statt.
Materialien und weitere Lektüre:30.04.2019:
Materialien und weitere Lektüre:
Laufzeitanalyse rekursiver Programme mit Rekursionsgleichungen, Mastertheorem (Baum der Rekursionsgleichung; Anzahl der Blätter; dominiert über den Overhead t(n) an der Wurzel?); Laufzeitanalyse für C++-Programme (dominierende Anweisungen, Matrizenmultiplikation, While-Schleifen)23.04.2019:
Materialien und weitere Lektüre:
Binomialkoeffizienten, Pseudocode, Messung von Laufzeit (Eingabelänge, Worst-Case Laufzeit), Asymptotik (Größenwachstum von Funktionen, Definition O/o/Θ/Ω/ω Notationen, Grenzwerte, Rechenregeln)16.04.2019:
Materialien:
Organisatorisches, Mathematische Grundlagen (Vollständige Induktion, Beispiele), Binärsuche (Korrektheit und Laufzeit mit vollständiger Induktion), Logarithmus (Definition und Rechenregeln)