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



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

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

368 4 Algorithmen und Datenstrukturen

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

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

Tutorium Algorithmen & Datenstrukturen

Binäre Bäume Darstellung und Traversierung

Algorithmen und Datenstrukturen

Datenstrukturen & Algorithmen

Kapiteltests zum Leitprogramm Binäre Suchbäume

WS 2009/10. Diskrete Strukturen

Datenstrukturen und Algorithmen

2.11 Kontextfreie Grammatiken und Parsebäume

Kap. 4.2: Binäre Suchbäume

Grundbegriffe der Informatik

15 Optimales Kodieren

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

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

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

13. Binäre Suchbäume

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Analysis I für Studierende der Ingenieurwissenschaften

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Algorithmen und Datenstrukturen Suchbaum

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:

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

Grundbegriffe der Informatik

Informationsblatt Induktionsbeweis

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Beispiel zu Datenstrukturen

1 topologisches Sortieren

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Algorithmen und Datenstrukturen Balancierte Suchbäume

Anmerkungen zur Übergangsprüfung

Programmiersprachen und Übersetzer

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

3. Grundlagen der Linearen Programmierung

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Einführung in die Algebra

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Peer-to-Peer- Netzwerke

Logische Folgerung. Definition 2.11

Primzahlen und RSA-Verschlüsselung

Vorkurs Informatik WiSe 15/16

Repetitionsaufgaben Wurzelgleichungen

Grundbegriffe der Informatik

Codierung, Codes (variabler Länge)

Rekursionen (Teschl/Teschl )

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

1 Aussagenlogik und Mengenlehre

Digitale Magazine ohne eigenen Speicher

Theoretische Grundlagen des Software Engineering

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

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Zeichnen von Graphen. graph drawing

Semantik von Formeln und Sequenzen

Programmierkurs Java

Grundlagen der Theoretischen Informatik, SoSe 2008

Nachtrag zu binären Suchbäumen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Grundlagen der Künstlichen Intelligenz

Information Systems Engineering Seminar

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Programmiertechnik II

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Codierungstheorie Rudolf Scharlau, SoSe

Lenstras Algorithmus für Faktorisierung

Logik für Informatiker

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Kugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten

Die Komplexitätsklassen P und NP

Die Verbindung von Linearer Programmierung und Graphentheorie

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.

Theoretische Grundlagen der Informatik WS 09/10

Kombinatorische Optimierung

Diana Lange. Generative Gestaltung Operatoren

Simplex-Umformung für Dummies

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Professionelle Seminare im Bereich MS-Office

4. Mathematik Olympiade 2. Stufe (Kreisolympiade) Klasse 8 Saison 1964/1965 Aufgaben und Lösungen

Workshop. Zeitmanagement Hamburg, 24. November 2004

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Was meinen die Leute eigentlich mit: Grexit?

Lösungen zu Kapitel 7

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

3. Stored Procedures und PL/SQL

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

Lineare Gleichungssysteme

Mathematische Grundlagen

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Grammatiken. Einführung

6.2 Perfekte Sicherheit

Mengensysteme, Wahrscheinlichkeitsmaße

Transkript:

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 Implementierung verschiedenen abstrakter Datentypen erläutern können und Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. Wir beschränken uns in diesem Kapitel auf Binärbäume. Datenstrukturen für die effiziente Suche im Hauptspeicher. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 209

6. Bäume Definitionen und grundlegende Eigenschaften Binärbäume Definition 6.1. Ein Binärbaum ist wie folgt definiert: Der leere Baum, bezeichnet durch, ist ein Binärbaum. Wenn T l und T r Binärbäume sind, dann ist auch w Tl Tr ein Binärbaum. Der Knoten w ist die Wurzel des Binärbaums, T l der linke und T r der rechte Unterbaum von w. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 210

6. Bäume Definitionen und grundlegende Eigenschaften Beispiel 6.1. Zwei binäre Bäume: Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 211

6. Bäume Definitionen und grundlegende Eigenschaften Knotenanzahl binärer Bäume Definition 6.2. Die Knoten bezeichnet man auch als innere Knoten, die leeren Bäume als externe Knoten. Lemma 6.1. Ein binärer Baum mit n inneren Knoten hat genau n + 1 externe Knoten. Beweis: Vollständige Induktion über die Anzahl der inneren Knoten Induktionsanfang: n = 0 z.z.: Ein binärer Baum mit 0 inneren Knoten hat genau einen externen Knoten. Es gibt nur einen binären Baum, der keinen inneren Knoten hat: der leere Baum. Der leere Baum hat genau einen externen Knoten. Also gilt die Aussage für n = 0. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 212

6. Bäume Definitionen und grundlegende Eigenschaften Induktionsschritt: n n + 1 z.z. Wenn die Aussage für alle binären Bäume mit höchsten n inneren Knoten gilt, dann gilt sie auch für alle Bäume mit n + 1 inneren Knoten. Induktionsvoraussetzung (Wenn-Teil): Für 0 m n gilt: Ein binärer Baum mit m inneren Knoten hat m + 1 externe Knoten. Induktionsbehauptung (Dann-Teil): Ein beliebiger binärer Baum mit n + 1 inneren Knoten hat n + 2 externe Knoten. Es sei T ein beliebiger binärer Baum mit n + 1 inneren Knoten. Es sei w die Wurzel von T, T l sei der linke Unterbaum von w und T r der rechte Unterbaum. n l sei die Anzahl der inneren Knoten von T l, n r sei die Anzahl der inneren Knoten von T r. Es gilt: n l + n r = n, denn T l und T r enthalten alle der n + 1 inneren Knoten von T bis auf die Wurzel. Aus der Induktionsvoraussetzung folgt: T l enthält n l + 1 externe Knoten, T r enthält n r + 1 externe Knoten. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 213

6. Bäume Definitionen und grundlegende Eigenschaften Alle externen Knoten von T sind in T l oder T r. Also hat T (n l + 1) + (n r + 1) = (n l + n r ) + 2 = n + 2 externe Knoten. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 214

6. Bäume Definitionen und grundlegende Eigenschaften Höhe binärer Bäume Definition 6.3. Die Höhe h(t) eines binären Baums T ist wie folgt definiert: Für den leeren Baum gilt: h( ) = 0 w Für einen nicht-leeren Baum mit T = Tl Tr gilt: h(t) = 1 + max{h(t l ), h(t r )} Lemma 6.2. (a) Ein binärer Baum der Höhe h hat höchstens 2 h externe und höchstens 2 h 1 innere Knoten. (b) Für jeden Binärbaum T mit n inneren Knoten gilt h(t) log 2 (n + 1) Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 215

6. Bäume Definitionen und grundlegende Eigenschaften Beweis: (a) Vollständige Induktion über die Höhe h. h = 0: Nur der leere Baum hat die Höhe 0 und er hat 2 0 = 1 externe Knoten hat. h h + 1: Es sei T ein binärer Baum mit Höhe h + 1, T l sei der linke und T r sei der rechte Unterbaum der Wurzel von T. Die Höhe von T l und T r ist höchsten h. Nach Induktionsvoraussetzung enthalten T l und T r jeweils höchstens 2 h externe Knoten. T enthält somit höchstens 2 h + 2 h = 2 2 h = 2 h+1 externe Knoten. Die Formel für die Anzahl der internen Knoten folgt aus Lemma 6.1. (b) Aus der Formel für die inneren Knoten folgt: n 2 h(t) 1 n + 1 2 h(t) log 2 (n + 1) h(t) Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 216

6. Bäume Traversierungsalgorithmen Traversierungsalgorithmen Sehr häufig müssen alle Knoten eines Baumes aufgesucht und bearbeitet werden. Verfahren hierfür werden auch Traversierungs- oder Durchlaufalgorithmen genannt. Die folgenden Traversierungsalgorithmen für Binärbäume sind von besonderer Bedeutung. Diese Verfahren basieren direkt auf der rekursiven Definition eines Binärbaums. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 217

6. Bäume Traversierungsalgorithmen Preorder-Traversierung Algorithmus 6.1. [Preorder-Traversierung] Bei der Preorder-Traversierung wird ein Binärbaum T wie folgt durchlaufen: Falls T leer ist, tue nichts, ansonsten führe die folgenden Schritte in der genannten Reihenfolge aus: Behandle die Wurzel w von T, durchlaufe T l in Preorder und durchlaufe T r in Preorder. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 218

6. Bäume Traversierungsalgorithmen Inorder-Traversierung Algorithmus 6.2. [Inorder-Traversierung] Bei der Inorder-Traversierung wird ein Binärbaum T wie folgt durchlaufen: Falls T leer ist, tue nichts, ansonsten führe die folgenden Schritte in der genannten Reihenfolge aus: Durchlaufe den linken Unterbaum T l in Inorder, behandle die Wurzel w von T und durchlaufe den rechten Unterbaum T r in Inorder. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 219

6. Bäume Traversierungsalgorithmen Postorder-Traversierung Algorithmus 6.3. [Postorder-Traversierung] Bei der Postorder-Traversierung wird ein Binärbaum T wie folgt durchlaufen: Falls T leer ist, tue nichts, ansonsten führe die folgenden Schritte in der genannten Reihenfolge aus: Durchlaufe den linken Unterbaum T l in Postorder, durchlaufe den rechten Unterbaum T r in Postorder und behandle die Wurzel w von T. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 220

6. Bäume Traversierungsalgorithmen Beispiel Traversierungsalgorithmen b Beispiel 6.2. a d Preorder: b a d c Inorder: a b c d Postorder: a c d b c Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 221

6. Bäume Traversierungsalgorithmen Repräsentation arithmetischer Ausdrücke Beispiel 6.3. Repräsentation des arithmetischen Ausdrucks (3+4) (5+7) als Binärbaum: * + + 3 4 5 7 Inorder (nicht eindeutig): 3 + 4 5 + 7 Postorder (UPN, eindeutig): 3 4 + 5 7 + Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 222

6. Bäume Traversierungsalgorithmen Bemerkungen zu den Traversierungsalgorithmen Preorder bzw. Postorder liefern eine injektive Abbildung von binären Strukturbäumen für arithmetische Ausdrücke in Strings. Ergebnis von Preorder bzw. Postorder ist dann die sog. klammerfreie Präfix- bzw. Postfix-Notation (Umgekehrte Polnische Notation, UPN). Inorder dagegen ist nicht injektiv. Die Infixnotation wird erst durch Klammern eindeutig. Peter Becker, Datenstrukturen und Algorithmen Hochschule Bonn-Rhein-Sieg, SS 2012 223