Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen

Größe: px
Ab Seite anzeigen:

Download "Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen"

Transkript

1 Binäre Suchbäume Ein Leitprogramm von Timur Erdag und Björn Steffen Inhalt: Bäume gehören zu den bedeutendsten Datenstrukturen in der Informatik. Dieses Leitprogramm gibt eine Einführung in dieses Thema und befasst sich im Speziellen mit den binären Suchbäumen.. Unterrichtsmethode: Leitprogramm Das Leitprogramm ist ein Selbststudienmaterial. Es enthält alle notwendigen Unterrichtsinhalte, Übungen, Arbeitsanleitungen und Tests, welche die Schüler/innen brauchen, um ohne Lehrperson lernen zu können. Fachliches Review: Juraj Hromkovic, Informationstechnologie und Ausbildung, ETH Zürich Fachdidaktisches Review: Juraj Hromkovic, Informationstechnologie und Ausbildung, ETH Zürich Publiziert auf EducETH: 14. April 2008 Rechtliches: Die vorliegende Unterrichtseinheit darf ohne Einschränkung heruntergeladen und für Unterrichtszwecke kostenlos verwendet werden. Dabei sind auch Änderungen und Anpassungen erlaubt. Der Hinweis auf die Herkunft der Materialien (ETH Zürich, EducETH) sowie die Angabe der Autorinnen und Autoren darf aber nicht entfernt werden. Publizieren auf EducETH? Möchten Sie eine eigene Unterrichtseinheit auf EducETH publizieren? Auf folgender Seite finden Sie alle wichtigen Informationen: Weitere Informationen: Weitere Informationen zu dieser Unterrichtseinheit und zu EducETH finden Sie im Internet unter oder unter

2 Leitprogramm der Informatik Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class

3 Binäre Suchbäume Ein ETH-Leitprogramm für die Informatik Adressaten und Institutionen Das Leitprogramm richtet sich an Studierende an einer Fachhochschule im 2. Semester des Informatik- oder Elektrotechnikstudiums. Vorkenntnisse Die Leser und Leserinnen beherrschen die wesentlichen Aspekte einer Programmiersprache. kennen das Konzept der verketteten Liste. verstehen die Rekursion und deren Anwendung. Dauer Für die vollständige Bearbeitung des Leitprogramms werden ungefähr 6 8 Stunden benötigt. Betreuerin und Überarbeitung Christina Class Autoren Björn Steffen Timur Erdag 9. April 2008 Nutzungsrechte Die ETH stellt dieses Leitprogramm zur Förderung des Unterrichts interessierten Lehrkräften oder Institutionen zur internen Nutzung kostenlos zur Verfügung. 2

4 Vorwort Bäume gehören zu den bedeutendsten Datenstrukturen in der Informatik. Dieses Leitprogramm gibt eine Einführung in dieses vielseitige Gebiet und befasst sich im Speziellen mit den binären Suchbäumen. Das Leitprogramm richtet sich an Studierende an einer Fachhochschule im 2. Semester des Informatik- oder Elektrotechnikstudiums. Im Besonderen ist dieses Leitprogramm auf den Einsatz im Modul «Programmieren II» der Hochschule Luzern Technik & Architektur (HSLU T&A) ausgerichtet. Es kann auch in anderen Schulstufen verwendet werden, sofern die im Folgenden beschriebenen Vorkenntnisse vorliegen. Vorkenntnisse Die Leserinnen und Leser beherrschen die wesentlichen Aspekte einer Programmiersprache. kennen das Konzept der verketteten Liste. verstehen die Rekursion und deren Anwendung. 3

5

6 Inhaltsverzeichnis 1 Einleitung Lernziele des Leitprogramms Übersicht Aufbau Aufgaben Kapiteltests Programmiersprache und Pseudocode Vorgehen Bäume Lernziele Der Baum Die Komponenten eines Baumes Masse eines Baumes Lernkontrolle Binärbäume Lernziele Definition von Binärbäumen Alternative Definition von Binärbäumen Durchlaufordnungen in Binärbäumen Preorder-Reihenfolge (Hauptreihenfolge) Postorder-Reihenfolge (Nebenreihenfolge) Inorder-Reihenfolge (Symmetrische Reihenfolge) Lernkontrolle Binäre Suchbäume Lernziele Definition von binären Suchbäumen Suchen, Einfügen und Entfernen von Knoten Suchen eines Knotens Einfügen eines neuen Knotens Entfernen eines Knotens

7 Inhaltsverzeichnis 4.4 Lernkontrolle Balancierte Suchbäume Lernziele Laufzeitbetrachtungen von binären Suchbäumen AVL-Bäume Operationen in AVL-Bäumen Suchen, Einfügen und Entfernen von Knoten Rebalancierung durch Baumrotationen Implementierung von AVL-Bäumen Lernkontrolle Zusammenfassung Weiterführende Literatur A Lösungen zu den Aufgaben 69 A.1 Lösungen zum Kapitel A.2 Lösungen zum Kapitel A.3 Lösungen zum Kapitel A.4 Lösungen zum Kapitel

8 Abbildungsverzeichnis 2.1 Ein Baum mit Wurzel und Knoten Der Vater und seine Kinder Innere Knoten und Blätter Ordnung eines Baumes Die Tiefe eines Knotens Das Niveau der Knoten Die Höhe eines Baumes Ein ausgefüllter und ein unausgefüllter Baum Ein vollständiger und ein unvollständiger Baum Ein Binärbaum Ein Binärbaum nach der alternativen Definition Durchlaufordnung in der Preorder-Reihenfolge Durchlaufordnung in der Postorder-Reihenfolge Durchlaufordnung in der Inorder-Reihenfolge Ein binärer Suchbaum mit Schlüsseln Zwei binäre Suchbäume mit den gleichen Schlüsseln Inorder-Reihenfolge von zwei binären Suchbäumen Einfügen eines Knotens in einen binären Suchbaum Entfernen eines Blattes Entfernen eines Knotens, welcher genau ein Kind hat Entfernen eines Knotens, welcher genau zwei Kinder hat Die Inorder-Reihenfolge bestimmt den Nachfolger Ein entarteter und ein balancierter binärer Suchbaum Ein AVL-Baum ist ein höhenbalancierter Suchbaum Zwei Binärbäume mit eingetragenen Balancefaktoren Einfügen eines Knotens in einen AVL-Baum Drei Fälle eines unausgeglichenen AVL-Baum Einfache Baumrotation für die Rebalancierung eines AVL-Baumes Doppelrotation für die Rebalancierung eines AVL-Baumes

9

10 1 Einleitung Bäume gehören zu den bedeutendsten Datenstrukturen in der Informatik. Sie werden nicht nur zur effizienten Speicherung und schnellem Finden von Daten benutzt, sondern sind auch ein nützliches Hilfsmittel zur Strukturierung von Informationen. Auch die visuelle Aussagekraft der Bäume wird in den verschiedensten Bereichen eingesetzt. Zum Beispiel für die Strukturierung von Menüs graphischer Benutzeroberflächen oder für das Präsentieren von hierarchisch gruppierten Informationen wie bei einem Dateisystem. Für viele Anwendungen sind spezialisierte Bäume entwickelt worden. Für die Speicherung von Daten spielen zum Beispiel die binären Suchbäume eine wichtige Rolle. Diese Bäume stehen deshalb im Zentrum dieses Leitprogramms. 1.1 Lernziele des Leitprogramms Nach der Bearbeitung dieses Leitprogramms sollten folgende Lernziele erreicht sein: Sie kennen die Möglichkeiten von Bäumen, im Speziellen von Binärbäumen, für den Einsatz in der Informatik. Sie können die wesentlichen Algorithmen von binären Suchbäumen wie das Suchen, Einfügen oder das Durchlaufen implementieren. Sie können evaluieren, ob ein binärer Suchbaum für ein gegebenes Problem eine geeignete Datenstruktur ist. Im Weiteren kennen Sie das Konzept von balancierten Suchbäumen am Beispiel von AVL-Bäumen. Am Ende des Leitprogramms sind Sie in der Lage, sich selbständig in weiterführender Literatur über Bäume zu informieren. 9

11 1 Einleitung 1.2 Übersicht Dieses Leitprogramm führt die Leserinnen und Leser schrittweise in das Gebiet der binären Suchbäume ein. Im folgenden Kapitel werden die wesentlichen Begriffe und Eigenschaften von Bäumen aufgezeigt, während im dritten Kapitel auf Binärbäume und deren Durchlaufordnungen eingegangen wird. Das Kapitel 4 befasst sich mit den Eigenschaften und der Implementierung von binären Suchbäumen. Im darauf folgenden Kapitel wird auf die Notwendigkeit einer Balancierung für Suchbäume eingegangen und im besonderen die AVL-Bäume vorgestellt. 1.3 Aufbau Am Anfang jedes Kapitels werden nach einer kurzen Einführung die Lernziele aufgelistet, die in diesem Kapitel erreicht werden sollten. Einige schwierigere oder weiterführende Abschnitte, Aufgaben oder Abbildungen sind mit einem Stern ( ) markiert. Diese Inhalte sind optional und für die Erreichung der Lernziele nicht notwendig. Sie dienen den interessierten oder schnelleren Leserinnen und Lesern zur Vertiefung. 1.4 Aufgaben Jedes Kapitel enthält eine Anzahl von eingestreuten Aufgaben, die direkt an der entsprechenden Stelle gelöst werden sollen. Die Aufgaben dienen nicht nur dem Einüben des Gelernten, sondern enthalten auch weiterführende Informationen und bringen zusätzliche Hinweise. Im Weiteren befinden sich am Schluss jedes Kapitels zusätzliche Aufgaben zur Lernkontrolle und als Vorbereitung für die Kapiteltests oder allfällige Prüfungen. Für die Selbstkontrolle befinden sich in Anhang A auf Seite 69 die Lösungen zu den Aufgaben. Es gibt zwei Arten von Aufgaben: Aufgaben die mit einem Stift gekennzeichnet sind, können auf Papier gelöst werden. Bei den Aufgaben mit einem CD-ROM Symbol handelt es sich um Programmieraufgaben, welche am Computer gelöst werden müssen. Dazu befinden sich auf EducETH weitere Hinweise und Codegerüste. Lösungen finden Sie zu diesen Aufgaben ebenfalls auf EducETH. 10

12 1.5 Kapiteltests 1.5 Kapiteltests Am Ende jedes Kapitels wird ein Kapiteltest abgelegt. Dieser kurze Test umfasst einige Aufgaben zur Kontrolle des Lernfortschritts. 1.6 Programmiersprache und Pseudocode Die Programmieraufgaben dieses Leitprogramms beziehen sich auf die Programmiersprache JAVA. Die Aufgaben sollten jedoch ohne grosse Anpassungen auch in anderen Programmiersprachen umgesetzt werden können. Die Algorithmen sind in Pseudocode verfasst, wie er häufig in der Literatur verwendet wird. Die Beispiele können somit leicht auf die jeweilige Programmiersprache übertragen werden. Ausserdem wird das Lesen und Schreiben von Pseudocode für die Beschreibung von Algorithmen und weitere Nachforschungen geübt. 1.7 Vorgehen Wurde ein Kapitel fertig bearbeitet und die Aufgaben der Lernkontrolle gelöst, kann der Kapiteltest abgelegt werden. Bei erfolgreichem Bestehen des Tests, wird dann mit dem nächsten Kapitel weitergemacht. Sollten jedoch Schwierigkeiten bei der Lösung der Tests auftauchen, so müssen die entsprechenden Abschnitte des Kapitels nochmals bearbeitet und der Test zur Kontrolle wiederholt werden. Dieses Vorgehen nennt man auch Mastery Lernen. Man fährt erst mit dem Lernen fort, wenn man den bisherigen Stoff beherrscht. Dies erhöht den Lernerfolg deutlich. 11

13

14 2 Bäume In diesem Kapitel werden Sie mit dem erforderlichen Vokabular im Zusammenhang mit Bäumen vertraut gemacht. Dieses Vokabular ist intuitiv verständlich, da es sich auf bekannte Wörter und deren Bedeutung stützt. Jedoch müssen diese in einem neuen Zusammenhang gesehen werden. Wenn Sie diese einmal verstehen, werden Sie keine Mühe mehr haben, Texten über Bäume in der Informatik zu folgen. 2.1 Lernziele Um sich mit Algorithmen und Anwendungen im Zusammenhang mit Bäumen zu befassen, ist es erforderlich, dass Sie die grundlegenden Begriffe im Gebiet der Bäume kennen und verstehen. Sie können die wesentlichen Elemente eines Baumes identifizieren und umgangssprachlich beschreiben. Am Ende dieses Kapitels sind Sie in der Lage, sich selbständig in weiterführender Literatur über Bäume zu informieren. 2.2 Der Baum Was haben Bäume mit der Informatik zu tun? werden Sie Sich wahrscheinlich gefragt haben, als Sie zum ersten Mal erfahren haben, dass Bäume auch in der digitalen Welt existieren. Sie werden sehen, dass Bäume in der Informatik einige Gemeinsamkeiten mit den natürlichen Bäumen haben. Zum Beispiel besitzen beide Blätter und Wurzel 1. Und genau so, wie es in der Natur etliche Arten von Bäumen gibt, existieren auch in der Informatik verschiedene Arten. Jede Art ist spezialisiert und für eine bestimmte Anwendung optimiert. Es gibt jedoch auch Unterschiede zwischen Bäumen der Informatik und natürlichen Bäumen: Sie wachsen nicht in die gleiche Richtung. Bäume in der Informatik wachsen nach unten und haben dementsprechend die Wurzel oben wie ein natürlicher Baum, den Sie um 180 Grad drehen. 1 Im Gegensatz zur Natur besitzt ein Baum in der Informatik jedoch nur eine Wurzel. 13

15 2 Bäume Wurzel Kante Knoten Abbildung 2.1 Ein Baum mit der Wurzel, mehreren Knoten und Kanten. 2.3 Die Komponenten eines Baumes Knoten u. Kanten Die Knoten enthalten die Daten und werden miteinander durch Kanten verbunden. Wurzel Jeder nicht leere Baum besitzt genau eine und sie ist ganz oben zu finden. Vater u. Kind Väter sind mit ihren Kindern von unten mit einer Kante verbunden. Ein Baum (tree) besteht aus verschiedenen Komponenten. Die wohl wichtigste ist der Knoten. Ein Knoten (node) dient zur Speicherung von Daten. Knoten sind untereinander mit Kanten (edges) verbunden. Besitzt ein Baum keine Knoten, so ist der Baum leer. Besitzt er hingegen Knoten, so können diese vom Typ Wurzel, innerer Knoten oder Blatt sein. Jeder nicht leere Baum besitzt genau eine Wurzel (root), welche normalerweise oben gezeichnet wird. Die verschiedenen Komponenten eines Baumes sind in der Abbildung 2.1 dargestellt. Da die Wurzel ganz oben ist, wächst der Baum (wie bereits erwähnt) nach unten. Ist nun ein Knoten nach unten mit anderen Knoten durch Kanten verbunden, so sind diese unteren Knoten seine Kinder (child). Der obere Knoten wird als Vater dieser Kinder (vgl. Abbildung 2.2) bezeichnet. Väter Kinder Abbildung 2.2 Die Wurzel ist Vater von drei Kindern und eines ihrer Kinder (ganz rechts) ist selber Vater eines Kindes. 14

16 2.4 Masse eines Baumes innere Knoten Blätter Abbildung 2.3 Ein Baum mit inneren Knoten und Blättern. Ein innerer Knoten (inner node) ist ein Knoten mit mindestens einem Kind. Ist ein Knoten kinderlos, so spricht man von einem Blatt (leaf). (vgl. Abbildung 2.3) Aufgabe 2.1 Bestimmen Sie den Typ aller Knoten in folgender Abbildung. Beachten Sie, dass einzelne Knoten auch von mehreren Typen sein können. Innerer Knoten Dieser Knoten hat mindestens ein Kind. Blatt Dieser Knoten hat keine Kinder. a b c d e f g h 2.4 Masse eines Baumes Es gibt verschiedene Messgrössen, welche benutzt werden, um Eigenschaften eines Baumes zu beschreiben: Die Ordnung (order) gibt an, wie viele Kinder ein innerer Knoten höchstens haben darf. Hat ein Baum zum Beispiel die Ordnung 2, so dürfen seine Knoten höchstens zwei Kinder haben. Ist jedoch nur die grafische Darstellung eines Baumes vorgegeben, so lässt sich seine Ordnung nicht ablesen. An Hand einer Grafik kann nur die Ordnung bestimmt werden, welche der Baum mindestens hat (Abbildung 2.4). Der Grad (degree) eines Knotens sagt aus, wie viele Kinder ein Knoten effektiv hat. deg(v) = Anzahl der Kinder von v Ordnung Die maximale Anzahl der Kinder, die ein Knoten haben darf. Grad Die effektive Anzahl der Kinder, die ein Knoten hat. 15

17 2 Bäume Dabei gilt, dass der Grad jedes Knotens kleiner oder gleich der Ordnung des Baumes sein muss. In Abbildung 2.4 haben zum Beispiel die Knoten a und b den Grad 2 und der Knoten e hat den Grad 5. Pfad Der Weg zwischen zwei Knoten. Tiefe Die Anzahl der Knoten auf dem direkten Pfad zur Wurzel. Ein Pfad (path) von Knoten v nach Knoten w gibt an, welche Kanten und Knoten besucht werden, wenn man von v nach w wandert. Die Tiefe (depth) eines Knotens v gibt an, wie lange der Pfad zur Wurzel ist. depth(v) = Anzahl der Knoten auf dem Pfad von der Wurzel zum Knoten v Dabei werden alle Knoten gezählt, welche auf dem direkten Pfad von der Wurzel zum Knoten v liegen inklusive der Wurzel und dem Knoten v selbst (siehe Abbildung 2.5). Niveau Die Knoten mit der gleichen Tiefe. Knoten, welche die gleiche Tiefe haben, werden zu Niveaus (level) zusammengefasst, wie Abbildung 2.6 zeigt. a b c d e f g h i j Abbildung 2.4 Ein Baum mit Ordnung 5. 16

18 2.4 Masse eines Baumes z Abbildung 2.5 Die Tiefe vom Knoten z ist = 4. Die Höhe (height) eines Baumes entspricht der Tiefe des Knoten, welcher am weitesten von der Wurzel entfernt ist. height(v) = Die Höhe des Baumes mit Wurzel v Die Höhe eines Baumes entspricht somit dem grössten Niveau aller Knoten dieses Baumes (siehe Abbildung 2.7). Ein Baum heisst ausgefüllt, wenn alle inneren Knoten die maximale Anzahl Kinder haben. Somit ist der Grad jedes Knotens entweder gleich der Ordnung des Baumes (innerer Knoten) oder 0 (Blatt) (siehe Abbildung 2.8). Höhe Die Höhe ist gleich der Tiefe des tiefsten Knotens im Baum. Ausgefüllt Jeder innere Knoten besitzt die maximale Anzahl Kinder. a 1 b c 2 d e 3 f g h i j 4 Abbildung 2.6 Die Knoten d und e haben das gleiche Niveau von 3. 17

19 2 Bäume Höhe = 4 Abbildung 2.7 Die Höhe dieses Baumes beträgt 4. Vollständig Jedes Niveau hat die maximale Anzahl Knoten. Ein Baum heisst vollständig, wenn jedes Niveau die maximale Anzahl Knoten hat (siehe Abbildung 2.9). Jeder vollständige Baum ist auch ausgefüllt. Bruder/Geschwister Die Knoten mit dem gleichen Vater. Im Zusammenhang mit Bäumen, gibt es weitere Begriffe, welche wichtig sind. So wird ein Vater auch Elternknoten (parent) genannt. Knoten, welche den gleichen Vater haben, werden auch Brüder oder Geschwister (sibling) genannt. Nun kennen Sie alle relevanten Begriffe der Bäume, welche für das weitere Studium dieses Leitprogramms nötig sind und haben damit eine wichtige Grundlage geschaffen. Abbildung 2.8 Wenn beide Bäume Ordnung 2 haben, dann ist nur der Linke ein ausgefüllter Baum. 18

20 2.4 Masse eines Baumes Abbildung 2.9 Wenn beide Bäume Ordnung 2 haben, dann ist der linke Baum vollständig. Der rechte Baum ist zwar ausgefüllt, aber nicht vollständig. Aufgabe 2.2 Bestimmen Sie für die zwei Bäume der Aufgabe 2.1 auf Seite 15: a) die Höhe, b) die Ordnung, c) die Niveaus, d) ob der Baum ausgefüllt ist, e) den Grad aller Knoten f) und die Tiefe jedes Knotens. 19

21 2 Bäume 2.5 Lernkontrolle Die folgenden Aufgaben dienen dem weiteren Üben und der Lernkontrolle der Inhalte dieses Kapitels. Wenn Sie alle Aufgaben lösen können, kann der Kapiteltest in Angriff genommen werden. Wenn jedoch Schwierigkeiten bestehen, sollten die entsprechenden Abschnitte des Kapitels nochmals bearbeitet werden. Aufgabe 2.3 Bestimmen Sie im folgenden Baum die Typen der Knoten. Füllen Sie dazu die vorgegebene Tabelle aus. a b c d e f g h i j k l m n o Wurzel Blatt Innerer Knoten a b c d e f g h i j k l m n o Aufgabe 2.4 Bestimmen Sie für jeden Knoten des Baumes der Aufgabe 2.3 die Tiefe und den Grad. Aufgabe 2.5 Zeichnen Sie im Baum der Aufgabe 2.3 die Niveaus und die Höhe ein. Überlegen Sie sich, 20

22 2.5 Lernkontrolle welche Ordnung dieser Baum haben könnte, und begründen Sie ihre Entscheidung. Aufgabe 2.6 Gegeben sind die drei folgenden Bäume der Ordnung 2. Entscheiden Sie, welche Bäume vollständig und welche ausgefüllt sind, und begründen Sie Ihre Antwort. Aufgabe 2.7 Für viele Anwendungen gibt es verschiedene spezialisierte Bäume. Recherchieren Sie in verschiedenen Quellen (Internet, Bibliothek,... ) und notieren sich drei spezielle Bäume und deren wichtigste Anwendung. Beachten Sie dabei besondere Eigenschaften der Bäume, wie zum Beispiel die Ordnung der Bäume. 21

23

24 3 Binärbäume In der Informatik werden Bäume für die Strukturierung von Daten für verschiedene unterschiedliche Zwecke eingesetzt. Für spezifische Anwendungen sind deshalb spezialisierte Bäume entstanden. Von besonderem Interesse ist hierbei der Binärbaum. Ein Binärbaum ist ein Baum der Ordnung 2. Somit hat jeder Knoten höchstens zwei Kinder. Durch diese Einschränkung vereinfachen sich viele Algorithmen und Repräsentationen der Bäume. Der Binärbaum wird in der Informatik daher oft eingesetzt und liefert die Grundlage für weitere spezialisiertere Bäume. Für viele Anwendungen ist es ausserdem notwendig alle Knoten eines Baumes der Reihe nach zu bearbeiten. Da die Knoten jedoch nicht linear angeordnet sind wie zum Beispiel in einer Liste, gibt es verschiedene Durchlaufordnungen, um alle Knoten eines Baumes zu durchlaufen. 3.1 Lernziele Da die Binärbäume eine Grundlage für weitere spezialisiertere Bäume sind, ist es wichtig, dass Sie die Definition der Binärbäume kennen. Im Weiteren ist es für viele Anwendungen unerlässlich, dass alle Knoten eines Baumes in einer bestimmten Reihenfolge durchlaufen werden. Für dieses Kapitel des Leitprogramms gelten die folgenden Lernziele: Sie kennen die Definition und die Besonderheiten der Binärbäume. Sie kennen die drei wichtigsten Durchlaufordnungen und deren Eigenschaften. Sie können diese Durchlaufordnungen für Binärbäume implementieren. Für die drei Durchlaufordnungen können Sie je eine Beispielanwendung angeben und begründen, weshalb diese Reihenfolge verwendet wurde. 23

25 3 Binärbäume Abbildung 3.1 Ein Binärbaum. Jeder Knoten v des Baumes hat höchstens zwei Kinder, ein Linkes (left(v)) und ein Rechtes (right(v)). 3.2 Definition von Binärbäumen Binärbaum Ein Baum der Ordnung 2. Knoten sind entweder linkes oder rechtes Kind ihres Elternknotens. Ein binärer Baum oder Binärbaum (binary tree) ist ein Baum der Ordnung 2. Die inneren Knoten eines Binärbaumes haben somit höchstens zwei Kinder. Diese Kinder werden als linkes (left(v)) bzw. rechtes Kind (Sohn) (right(v)) eines Knotens v bezeichnet. v left(v) right(v) Diese Vereinfachung der Repräsentation von Bäumen erlaubt es, wesentlich einfachere Algorithmen und Datenstrukturen zu definieren (siehe Abbildung 3.1) Alternative Definition von Binärbäumen In der Literatur existiert eine weitere Definition von Binärbäumen. Beide Definition sind von Bedeutung, entsprechend haben beide Vor- und Nachteile. In diesem Abschnitt wird deshalb die zweite geläufige Definition erläutert. Nach dieser Definition hat jeder Knoten des Binärbaums genau zwei oder keine Kinder. Die so definierten Binärbäume sind somit immer ausgefüllt. Um diese Eigenschaft sicherzustellen, werden in den Binärbaum an bestimmten Stellen leere Blätter eingefügt. 24

26 3.2 Definition von Binärbäumen Abbildung 3.2 Der Binärbaum nach der alternativen Variante. Durch eingefügte leere Blätter ist dieser Binärbaum immer ausgefüllt. Leere Blätter sind die einzigen Knoten die keine Kinder haben und werden mit dem folgenden Symbol dargestellt: Ein Binärbaum B wird folgendermassen in die alternative Variante B umgewandelt: 1. Alle Blätter des Binärbaumes B erhalten zwei leere Blätter und werden somit zu inneren Knoten. 2. Alle inneren Knoten des Baumes B, die noch nicht zwei Kinder besitzen, erhalten an entsprechender Stelle ein leeres Blatt. Der resultierende Binärbaum B hat dann die Eigenschaften dieser alternativen Definition. Abbildung 3.2 zeigt einen Binärbaum dieser Definition. Diese strikte Variante der Definition erlaubt es gewisse Algorithmen einfacher zu definieren, da alle inneren Knoten immer genau zwei Kinder haben. Andererseits werden die Abbildungen dadurch überladen und die Beschreibungen und Definitionen unnötig kompliziert. In diesem Leitprogramm wird deshalb die weniger restriktive Variante der Definition eines Binärbaumes verwendet. 25

27 3 Binärbäume 3.3 Durchlaufordnungen in Binärbäumen Durchlaufordnung Die Reihenfolge, in der die Knoten eines Baumes durchlaufen werden. Oft ist es notwendig, alle Knoten eines Baumes der Reihe nach zu besuchen. Solche Anwendungen sind zum Beispiel die Bestimmung der Anzahl Knoten eines Baumes oder seiner Höhe oder das Ausgeben aller Knoten des Baumes. Bei linearen Datenstrukturen, wie zum Beispiel der verketten Liste, können deren Elemente vom vordersten bis zum hintersten Element der Reihe nach durchlaufen werden. Bei Bäumen sind verschiedene Durchlaufordnungen möglich. Die Aktion beim Besuchen eines Knotens ist dabei für verschiedene Anwendungen unterschiedlich und reicht vom einfachen Ausgeben des Knotens bis zu komplizierten Berechnungen für diesen Knoten. Das Durchlaufen eines Baumes wird auch als Traversierung bezeichnet. Für das Durchlaufen von Binärbäumen sind drei Reihenfolgen von besonderer Bedeutung: die Preorder- (Hauptreihenfolge), die Postorder- (Nebenreihenfolge) und die Inorder-Reihenfolge (symmetrische Reihenfolge). Die Bezeichnungen Preorder, Postorder und Inorder verdeutlichen, ob ein Knoten vor, nach oder zwischen seinen Teilbäumen besucht wird. Die Reihenfolgen können auf einfache Weise rekursiv formuliert werden Preorder-Reihenfolge (Hauptreihenfolge) Preorder-Reihenfolge Bei dieser Reihenfolge wird ein Knoten vor seinen Kindern durchlaufen. Bei der Preorder-Reihenfolge (Hauptreihenfolge) wird ein Knoten jeweils vor seinem linken und rechten Teilbaum durchlaufen. Die Preorder-Reihenfolge wird also zuerst die Wurzel des Baumes besuchen. Danach wird rekursiv der linke Teilbaum und dann der rechte Teilbaum durchlaufen. Das Durchlaufen eines Binärbaumes mit Wurzel v in der Preorder-Reihenfolge erfolgt in den folgenden Schritten: 1. Besuche den Knoten v. 2. Durchlaufe den linken Teilbaum des Knotens v in der Preorder-Reihenfolge. 3. Durchlaufe den rechten Teilbaum des Knotens v in der Preorder-Reihenfolge. Beim Durchlaufen eines Baumes in der Preorder-Reihenfolge entsteht eine lineare Ordnung der Knoten, bei der die Elternknoten immer vor ihren Kindern besucht werden, wie Abbildung 3.3 zeigt. 26

28 3.3 Durchlaufordnungen in Binärbäumen Abbildung 3.3 Durchlaufordnung eines Binärbaumes in der Preorder-Reihenfolge. Ein Knoten wird jeweils vor seinem linken und rechten Teilbaum durchlaufen. Der folgende Pseudocode zeigt den rekursiven Algorithmus preorder() für diese Durchlaufordnung. 1: algorithm preorder(v) 2: {Durchläuft alle Knoten des Binärbaumes mit Wurzel v in der Preorder- Reihenfolge} 3: if v null then 4: Besuche den Knoten v { } 5: preorder( left(v) ) 6: preorder( right(v) ) 7: end if 8: end algorithm Bei der mit { } markierten Stelle im Algorithmus findet die eigentliche Bearbeitung des besuchten Knotens statt. Zum Beispiel kann hier der Inhalts des Knotens ausgegeben werden. Die Preorder-Reihenfolge ist dann nützlich, wenn die Berechnung für einen Knoten vor der Berechnung seiner Kinder stattfinden muss. Aufgabe 3.1 Die Preorder-Reihenfolge ist nicht nur für das Durchlaufen von Binärbäumen anwendbar. Erweitern sie den gegebenen Algorithmus preorder() so, dass beliebige Bäume damit durchlaufen werden können. 27

29 3 Binärbäume Aufgabe 3.2 Bestimmen Sie für den folgenden Binärbaum die Durchlaufordnung nach der Preorder- Reihenfolge. a b c d e f g h i j Programmieraufgabe 3.3 Schreiben Sie eine Methode preorderprint() in der Klasse BinaryNode. In dieser Methode werden alle Knoten eines Binärbaumes in der Preorder-Reihenfolge ausgegeben Postorder-Reihenfolge (Nebenreihenfolge) Postorder-Reihenfolge Bei dieser Reihenfolge wird ein Knoten nach seinen Kindern durchlaufen. Das Durchlaufen eines Binärbaumes in der Postorder-Reihenfolge (Nebenreihenfolge) erfolgt ähnlich zur Preorder-Reihenfolge. Bei dieser Durchlaufordnung wird jedoch ein Knoten v nach seinem linken und rechten Teilbaum besucht. 1. Durchlaufe den linken Teilbaum des Knotens v in der Postorder-Reihenfolge. 2. Durchlaufe den rechten Teilbaum des Knotens v in der Postorder-Reihenfolge. 3. Besuche den Knoten v. Die Postorder-Reihenfolge liefert beim Durchlaufen eines Baumes eine lineare Ordnung der Knoten, bei dem die Elternknoten immer nach ihren Kindern besucht werden, wie Abbildung 3.4 zeigt. Das Durchlaufen in der Posterorder-Reihenfolge ist für verschiedene Anwendungen nützlich. Zum Beispiel wenn für jeden Knoten v eine Eigenschaft berechnet werden soll, für deren Bestimmung aber zuerst die Eigenschaften der Kinder von v berechnet werden müssen. 28

30 3.3 Durchlaufordnungen in Binärbäumen Abbildung 3.4 Durchlaufordnung eines Binärbaumes in der Postorder-Reihenfolge. Ein Knoten wird jeweils nach seinem linken und rechten Teilbaum durchlaufen. Aufgabe 3.4 Bestimmen Sie für den folgenden Binärbaum die Durchlaufordnung nach der Postorder- Reihenfolge. a b c d e f g h i j Aufgabe 3.5 Schreiben Sie einen rekursiven Algorithmus postorder() in Pseudocode, der alle Knoten eines Binärbaumes in der Postorder-Reihenfolge besucht. 29

31 3 Binärbäume Abbildung 3.5 Durchlaufordnung eines Binärbaumes in der Inorder-Reihenfolge. Ein Knoten wird jeweils zwischen seinem linken und rechten Teilbaum durchlaufen Inorder-Reihenfolge (Symmetrische Reihenfolge) Inorder-Reihenfolge Bei dieser Reihenfolge wird ein Knoten zwischen seinen Kindern durchlaufen. Die Preorder- und die Postorder-Reihenfolgen sind für alle Bäume anwendbar, die Inorder-Reihenfolge ist jedoch nur für Binärbäume definiert. Bei der Inorder-Reihenfolge (symmetrischen Reihenfolge) wird ein Knoten v zwischen dem Durchlaufen seines linken und rechten Teilbaumes besucht. 1. Durchlaufe den linken Teilbaum des Knotens v in der Inorder-Reihenfolge. 2. Besuche den Knoten v. 3. Durchlaufe den rechten Teilbaum des Knotens v in der Inorder-Reihenfolge. Beim Durchlaufen eines Binärbaumes in der Inorder-Reihenfolge ergibt sich eine lineare Ordnung der Knoten. In dieser Ordnung erscheint ein Knoten immer zwischen seinen Kindern (siehe Abbildung 3.5). Die Knoten des Binärbaumes werden quasi von links nach rechts besucht. Die Inorder-Reihenfolge hat ebenfalls verschiedene Anwendungen. Diese Durchlaufordnung spielt zum Beispiel eine wichtige Rolle bei den binären Suchbäumen des nächsten Kapitels. Aufgabe 3.6 Schreiben Sie einen Algorithmus inordernext(v) in Pseudocode der für einen Binärbaum den nächsten Knoten nach v in der Inorder-Reihenfolge liefert. Gehen Sie dabei davon aus, dass ein solcher Knoten existiert. (Sie können also annehmen, dass right(v) null) 30

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Leitprogramm der Informatik Binäre Suchbäume

Leitprogramm der Informatik Binäre Suchbäume Leitprogramm der Informatik Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Ein ETH-Leitprogramm für die Informatik Adressaten und Institutionen Das Leitprogramm

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & 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

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: 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

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der 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

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

Mehr

13. Binäre Suchbäume

13. 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),

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen 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

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung 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

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen 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.

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Vorlesung Datenstrukturen

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

Mehr

14. Rot-Schwarz-Bäume

14. 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

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

3. 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. 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:

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Tutorium Algorithmen & Datenstrukturen

Tutorium 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

Mehr

Informatik II, SS 2014

Informatik 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

Mehr

Beispiel zu Datenstrukturen

Beispiel zu Datenstrukturen 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

Mehr

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten

Mehr

Copyright, Page 1 of 8 AVL-Baum

Copyright, Page 1 of 8 AVL-Baum www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Binä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 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

Informatik II, SS 2014

Informatik 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:

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. 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

Mehr

Programmiertechnik II

Programmiertechnik 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,...

Mehr

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm 10. Kapitel (Teil1) BÄUME GRUNDLAGEN Algrithmen & Datenstrukturen Prf. Dr. Wlfgang Schramm Übersicht 1 1. Einführung 2. Algrithmen 3. EigenschaCen vn Prgrammiersprachen 4. Algrithmenparadigmen 5. Suchen

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Informatik II, SS 2014

Informatik 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

Mehr

Leitprogramm Bubblesort

Leitprogramm Bubblesort Leitprogramm Bubblesort Dr. Rainer Hauser Inhalt 1 Übersicht...1 2 Input-Block I: Der Sortieralgorithmus Bubblesort...2 3 Input-Block II: Die Effizienz von Bubblesort...6 4 Zusammenfassung...8 5 Lernkontrolle...9

Mehr

Kapitel 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 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:

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellö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

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte] UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

Bäume in der Informatik

Bäume in der Informatik Bäume in der Informatik Ein Leitprogramm von Matthias Niklaus Inhalt und Lernziele: Bäume gehören in der Informatik zu den wichtigsten Datenstrukturen. Dieses Leitprogramm verschafft einen Einblick in

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbä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

Mehr

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Bä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

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Übung zur Vorlesung Algorithmische Geometrie Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

Einführung in (Binäre) Bäume

Einführung in (Binäre) Bäume edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard rennhard@tik.ee.ethz.ch äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,

Mehr

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich

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:

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Binärbäume: Beispiel

Binärbäume: Beispiel Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des

Mehr

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Suchbä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

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. 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

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester 2012. Robert Marti

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester 2012. Robert Marti 6 Baumstrukturen Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Beispiel: Hierarchisches File System 2

Mehr

Vorname:... Matrikel-Nr.:... Unterschrift:...

Vorname:... Matrikel-Nr.:... Unterschrift:... Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Bachelor of Computer Science Algorithmen und Datenstrukturen Wintersemester 2003 / 2004 Name:... Vorname:...

Mehr

Balancierte Suchbäume

Balancierte Suchbäume Foliensatz 10 Michael Brinkmeier echnische Universität Ilmenau Institut für heoretische Informatik Sommersemester 2009 U Ilmenau Seite 1 / 74 Balancierte Suchbäume U Ilmenau Seite 2 / 74 Balancierte Suchbäume

Mehr

3 Quellencodierung. 3.1 Einleitung

3 Quellencodierung. 3.1 Einleitung Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 26. März

Mehr

Suchen und Sortieren

Suchen und Sortieren (Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einfü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

Mehr

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes

Mehr

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume AVL-Bäume Splay-Bäume B-Bäume Digitale Suchbäume Heaps M.O.Franz; Oktober 2007 Algorithmen und

Mehr

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

Mehr

Binärbäume. Prof. Dr. E. Ehses, 2014 1

Binärbäume. Prof. Dr. E. Ehses, 2014 1 Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Definition 15 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.2 Rot-Schwarz-Bäume Definition 15 Rot-Schwarz-Bäume sind externe Binärä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 (durchgezogene

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer

Mehr

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Webseitennavigation mit dem Content-Management-System Imperia. Zentrum für Informationsverarbeitung Westfälische Wilhelms-Universität Münster

Webseitennavigation mit dem Content-Management-System Imperia. Zentrum für Informationsverarbeitung Westfälische Wilhelms-Universität Münster Webseitennavigation mit dem Content-Management-System Imperia Zentrum für Informationsverarbeitung Westfälische Wilhelms-Universität Münster 10. Januar 2006 Inhaltsverzeichnis 1. Einführung 4 2. Rubrikenstruktur

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr