zu Datenstrukturen Passend zum Kurs 01661 Version Juni 2008 Dieter Hoffmann Dipl.-Inform.
Diese Kurshilfe zum Kurs Datenstrukuren I (Kursnummer 01661) bei Prof. Dr. Güting (Lehrgebiet Praktische Informatik IV: Datenbanksysteme für neue Anwendungen) ist weder ein Skript noch ein Ersatz für das Skript des Kurses Datenstrukturen I. Der Inhalt dieser Kurshilfe besteht im Wesentlichen aus den Folien, die ich in der mentoriellen Veranstaltung in München zum Kurs Datenstrukturen I bespreche. Daher liegt die Verantwortung auf Korrektheit und Inhaltsauswahl ausschließlich bei mir. Eventuelle Fehler können damit lediglich mir angelastet werden. Ich weise ausdrücklich darauf hin, dass diese Kurshilfe nicht ausreichend zum Bestehen der Klausur oder einer eventuellen mündlichen Prüfung in Fach Datenstrukturen I ist. Copyright Vorbehalt Die Erstellung der Folien hat mich einige Zeit und Mühe gekostet. Deshalb möchte ich die Verbreitung dieser Folien auch selber steuern. Aus diesem Grund ist eine Vervielfältigung, ein Nachdruck oder eine Weitergabe, auch in Auszügen, nur mit meiner schriftlichen Genehmigung gestattet.
Liebe Fernstudentin, lieber Fernstudent, diese Kurshilfe enthält die Folien, die ich in der mentoriellen Veranstaltung zum Informatik- Kurs Datenstrukturen (01661) im Studienzentrum München der Fernuniversität Hagen jeweils im Sommersemester präsentiere. Der Inhalt dieser Kurshilfe wendet sich in der vorliegenden Version damit vorrangig an diejenigen Studierenden, die den Bachelor Studiengang in Informatik an der Fernuniversität in Hagen studieren und aktuell den Kurs Datenstrukturen I (Kursnummer 01661) bei Prof. Dr. Güting (Lehrgebiet Praktische Informatik IV: Datenbanksysteme für neue Anwendungen) bearbeiten. Meine Folien stelle ich nun auf Wunsch von Studierenden meiner mentoriellen Veranstaltung zur Verfügung. Ich habe mir zudem überlegt, dass auch diejenigen Studierenden, die keine Möglichkeit haben, eine mentorielle Veranstaltung zu besuchen, ebenfalls meine Zusammenfassung erhalten können. Dazu stelle ich diese Folien als Kurshilfe im Internet bereit. Der Inhalt der Folien legt den Schwerpunkt auf eine anschauliche Beschreibung der wichtigsten Themen des Vorlesungsskriptes von Herrn Prof. Dr. Güting, weniger auf Komplexitätsbetrachtungen. In diesem Sinne wird also z.b. beschrieben, wie der Heap-Sort funktioniert, nicht aber, wie dieser algorithmisch implementiert werden kann oder welche Laufzeit bzw. welchen Speicherplatzbedarf dieses Sortierverfahren benötigt. Gleichwohl ist die Komplexitätsbetrachtung nicht minder wichtig! Bitte beachten Sie auch folgende Hinweise: Dieses Kurshilfe ersetzt nicht die Kursunterlagen! Sie sollte lediglich als Zusatz betrachtet werden, so wie es die mentoriellen Veranstaltungen in den Studienzentren auch sind. In den Folien wird der Stoff des Kurses, wie zuvor beschrieben, nicht vollständig wiedergegeben. Trotz höchster Sorgfalt meinerseits, kann ich keine Garantie dafür geben, dass alles richtig ist. Sollte Ihnen dennoch ein Fehler auffallen (oder sollten Sie Anregungen haben), dann bin ich für jeden Hinweis an 01661@hoffmann-dieter.de dankbar. Viel Spaß also beim Durcharbeiten der Folien und gutes Gelingen im Studium, speziell natürlich auch bei der Bearbeitung des Kurses Datenstrukturen I, wünscht Dieter Hoffmann Unterhaching, 08.06.2008 Version Juni 2008 Über den Autor: Dieter Hoffmann studierte den Diplomstudiengang Informatik an der Technischen Universität Braunschweig. Seit dem ist er im Großraum München tätig als IT-Consultant. Er ist außerdem im Fachgebiet Informatik als Mentor im Fach Datenstrukturen I sowie als Korrektor von Klausuren und Einsendeaufgaben für die Fernuniversität Hagen tätig. 01661@hoffmann-dieter.de Seite 3
Inhaltsverzeichnis 1. Folien zu Kurseinheit 1... 5 2. Folien zu Kurseinheit 2... 6 3. Folien zu Kurseinheit 3... 7 4. Folien zu Kurseinheit 4... 8 5. Folien zu Kurseinheit 5... 9 Literaturverzeichnis... 10 01661@hoffmann-dieter.de Seite 4
1. Folien zu Kurseinheit 1 Algorithmen Qualität eines Algorithmus: Korrektheit Wünschenswert außerdem: Einfach zu verstehen Einfach zu implementieren Geringe Laufzeit Geringer Platzbedarf Messung? Aber: Kriterien können im Widerspruch zueinander stehen Dieter Hoffmann 3 01661@hoffmann-dieter.de Seite 5
2. Folien zu Kurseinheit 2 preorder ((l, x, r)) postorder ((l, x, r)) inorder ((l, x, r)) (Binär-)Bäume (rekursive Strukturen) = <x> preorder (l) preorder (r) = postorder (l) postorder (r) <x> = inorder (l) <x> inorder (r) : Preorder <, +, a, b,?, c,, d, e > Postorder < a, b, +, c, d, e,,?, > Inorder > < a, +, b,, c,?, d,, e Dieter Hoffmann 10 01661@hoffmann-dieter.de Seite 6
3. Folien zu Kurseinheit 3 Dictionaries: Mengen mit Insert, Delete, Member Hashing Wahl der Hashfunktion: Mittel-Quadrat-Methode (Forts.): : Für m = 100 ergibt sich 01661@hoffmann-dieter.de 9 01661@hoffmann-dieter.de Seite 7
4. Folien zu Kurseinheit 4 Sortieralgorithmen Divide-and-Conquer (DAC = Teile und herrsche ) MergeSort(Sortierte Teilfolgen zu sortierter Folge zusammenmischen) - Liste in der Mitte teilen - Beide Hälften rekursiv sortieren - Ergebnislisten geordnet zusammenmischen (Hauptarbeit) 1 [9,6,2,8,4,7,3,5,1] 2 ([9,6,2,8][4,7,3,5,1]) 3 (([9,6][2,8])([4,7][3,5,1])) 4 ((([9][6])([2][8]))(([4][7])([3][5,1]))) 5 ((([9][6])([2][8]))(([4][7])([3]([5][1])))) 6 ((([9][6])([2][8]))(([4][7])([3][1,5]))) 7 (([6,9][2,8])([4,7][1,3,5])) 8 ([2,6,8,9][1,3,4,5,7]) 9 [1,2,3,4,5,6,7,8,9] 01661@hoffmann-dieter.de 2 01661@hoffmann-dieter.de Seite 8
5. Folien zu Kurseinheit 5 Externes Suchen: B-Bäume Allgemeiner (oder Vielweg-) Suchbaum Verallgemeinerung des binären Suchbaums B-Baum: Spezieller Vielweg-Suchbaum (der Ordnung m) Anzahl Schlüssel: Wurzel 1 bis 2m, sonst m bis 2m Alle Pfadlängen von Wurzel zu Blatt sind gleich Innere Knoten mit s Schlüsseln s+1 Söhne Baum der Ordnung 1: Knoten hat 2-3 Söhne ( 2-3-Baum) 01661@hoffmann-dieter.de 2 01661@hoffmann-dieter.de Seite 9
Literaturverzeichnis Der Inhalt dieser Folien basiert hauptsächlich auf: Güting, Ralf Hartmut, Datenstrukturen, Kurseinheit 1 bis Kurseinheit 5, Hagen, 2007. 01661@hoffmann-dieter.de Seite 10