Datenstrukturen & Algorithmen



Ähnliche Dokumente
Algorithmen und Datenstrukturen Suchbaum

13. Binäre Suchbäume

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

Algorithmen und Datenstrukturen

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

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

Datenstrukturen und Algorithmen

WS 2009/10. Diskrete Strukturen

Algorithmen und Datenstrukturen Balancierte Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Binäre Bäume Darstellung und Traversierung

Tutorium Algorithmen & Datenstrukturen

Kap. 4.2: Binäre Suchbäume

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

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

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

Grundlagen der Programmierung 2. Bäume

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

368 4 Algorithmen und Datenstrukturen

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

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 )

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.

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

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

Suchen und Sortieren

Nachtrag zu binären Suchbäumen

Anmerkungen zur Übergangsprüfung

9. Natürliche Suchbäume

Algorithmen und Datenstrukturen 2

Kapitel 5: Dynamisches Programmieren Gliederung

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

1 topologisches Sortieren

Programmiertechnik II

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

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:

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

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

Vorkurs Informatik WiSe 15/16

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

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

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

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

Konzepte der Informatik

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

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Algorithmen und Datenstrukturen

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

16. All Pairs Shortest Path (ASPS)

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. SS 06

Sortierte Folgen 250

15 Optimales Kodieren

DATENSTRUKTUREN UND ZAHLENSYSTEME

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

8 Diskrete Optimierung

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen 1. Klausur

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

2.11 Kontextfreie Grammatiken und Parsebäume

Die Komplexitätsklassen P und NP

Programmieren I. Kapitel 7. Sortieren und Suchen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

EndTermTest PROGALGO WS1516 A

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Beispiele für Relationen

Kombinatorische Optimierung

Kapitel 6: Graphalgorithmen Gliederung

Beispiel zu Datenstrukturen

Algorithmen II Vorlesung am

Information Systems Engineering Seminar

Überblick. Lineares Suchen

Graphen: Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen

Programmiersprachen und Übersetzer

Suchen und Sortieren Sortieren. Heaps

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

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

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Sortierverfahren für Felder (Listen)

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Informatik II Prüfungsvorbereitungskurs

Kapitel 8: Physischer Datenbankentwurf

Kurs 1613 Einführung in die imperative Programmierung

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

Theoretische Grundlagen der Informatik

Software Engineering Klassendiagramme Assoziationen

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

Codes und Informationsgehalt

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Transkript:

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 Unterstützen viele Operationen effizient Wörterbuchoperationen Suchen, einfügen, löschen Aufwand proportional zur Höhe des Baumes Höhe zwischen Θ(n) und Θ(lg n) Zusätzlich Prioritätswarteschlangen (Minimum, Maximum effizient abfragen) Sortierte Auflistung in O(n) Vorgänger, Nachfolger effizient abfragen 3

Binäre Suchbäume Viele Varianten von Suchbäumen Binäre Suchbäume, rot-schwarz Bäume, AVL Bäume, B-Bäume, etc. Heute: grundlegende Operationen auf binären Suchbäumen Traversierung (Aufzählung der Elemente) Abfragen (suchen) Einfügen Löschen 4

Begriffe Bäume sind spezielle Typen von Graphen Siehe auch Anhänge B.4 und B.5 im Buch Mehr über Graphen später Intuitiv Graphen bestehen aus Knoten und Kanten zwischen Paaren von Knoten Graphen modellieren Beziehungen zwischen Daten Beispiele Knoten: speichern Schlüsselwerte, Kanten: Kante von Knoten a nach b existiert, wenn key[a]<key[b] Knoten: geografische g Orte, Kanten: Distanz, falls Zugstrecke existiert 5

Graphen Definition Paar (V,E) von Knoten- und Kantenmenge Kantenmenge enthält Paare von Knoten Gerichteten Graphen Knotenpaare geordnet Knotenpaare (a,b) und (b,a) werden unterschieden Ungerichteten Graphen Knotenpaare ungeordnet 6

Begriffe Pfad: Sequenz von Knoten die über Kanten entsprechender Richtung verbunden sind Erreichbar: Knoten ist von einem anderen erreichbar, wenn es einen Pfad gibt, der beide Knoten verbindet Zusammenhängend (ungerichteter Graph): jedes Knotenpaar ist durch einen Pfad verbunden Zyklus: Pfad, der als ersten und letzten Knoten denselben Knoten enthält 9

Begriffe Freier Baum: zusammenhängender, azyklischer, ungerichteter Graph Wald: azyklischer, ungerichteter Graph, nicht unbeding zusammenhängend 10

Begriffe (Gerichteter) Baum: Baum mit ausgezeichnetem Knoten, Wurzel Innerer Knoten, Blatt Vater, Kind Vorfahre, Nachfahre Teilbaum Tiefe eines Knotens: Abstand zur Wurzel Höhe eines Knotens: längster Pfad zu einem Blatt Höhe des Baumes: längster Pfad von Wurzel zu einem Blatt 12

Begriffe Binärer Baum: rekursive Definition Leerer Baum, oder Baum bestehend aus Wurzel Linker Teilbaum, der binärer Baum ist Rechter Teilbaum, der binärer Baum ist 14

Begriffe Vollständiger binärer Baum Alle Blätter haben gleiche Tiefe Alle internen Knoten haben zwei nicht-leere Teilbäume Vollständiger binärer Baum mit Höhe h hat n = 2 h Blätter Höhe ist h = log 2 n 2 h -1 interne Knoten 16

Binäre Bäume: Implementation Verkettete Struktur Blätter haben left = right = nil class BinaryNode { BinaryNode left, right, p; int key; } 18

Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 19

Binäre Suchbaum-Eigenschaft Falls Knoten y im linken Teilbaum von Knoten x, dann key[y]<=key[x] Falls Knoten y im rechten Teilbaum von Knoten x, dann key[y]>=key[x] 20

Inorder Traversierung Besucht Knoten in aufsteigender Reihenfolge 21

Inorder Traversierung Korrektheit: folgt mittels Rekursion aus Suchbaum-Eigenschaft Zeitaufwand: Linear,,jeder Knoten wird genau einmal besucht und ausgegeben 22

Alternative Reihenfolgen Inorder-Traversierung: traversiere linken Teilbaum,,g gib Knoten aus, traversiere rechten Teilbaum Preoreder-Traversierung: gibt Knoten aus, traversiere linken Teilbaum, traversiere rechten Teilbaum Postorder-Traversierung: traversiere linken Teilbaum, traversiere rechten Teilbaum, gib Knoten aus Nur Inorder-Traversierung gibt Schlüssel sortiert aus 23

Suchen 24

Suchen Überprüfte Knoten bilden Pfad von Wurzel nach unten Laufzeit höchstens O(h), ( h ist Höhe Iterative Variante, ähnlich wie Traversierung einer Liste 25

Minimum Aus Suchbaum-Eigenschaft folgt Kleinster Knoten ist Knoten am weitesten links Grösster Knoten ist Knoten am weitesten rechts 26

Vorgänger und Nachfolger Vorgänger von Element x Element mit grösstem Schlüssel der kleiner ist als x Nachfolger von Element x Element mit kleinstem Schlüssel l der grösser ist als x Kann gefunden werden ohne Schlüsselvergleiche! 27

Nachfolger 28

Zusammenfassung Operationen Suchen, Minimum, Maximum, Vorgänger und Nachfolger können auf Binärbaum der Höhe h in O(h) ausgeführt werden Grund: Alle Operationen folgen entweder einem strikt aufwärts oder abwärts laufenden Pfad im Baum 29

Einfügen und Löschen Einfügen und Löschen ändern die Struktur des Suchbaumes Müssen sicherstellen, das Suchbaum Eigenschaft wieder hergestellt wird Einfügen einfacher als Löschen 30

Einfügen 31

Einfügen Laufzeit O(h), wie Suchen Einfügen und Inorder-Traversierung können als Sortieralgorithmus verwendet werden 33

Löschen 3 Fälle: Lösche Knoten z 1. Fall: Knoten z hat keine Kinder Lösche Knoten z indem Vater von z auf nil zeigt anstatt auf z 2. Fall: Knoten z hat ein Kind Vater von Knoten z zeigt auf Kind von z anstatt tt auf z 3. Fall: Knoten z hat zwei Kinder Achtung: Der Nachfolger y von z hat entweder keines oder nur ein rechtes Kind (Nachfolger von z bedeutet der linkste Knoten im Rechten Teilbaum von z) 1. Lösche y via Fall 1 oder 2 2. Ersetze Schlüssel und Satellitendaten von z mit denjenigen von y 34

Löschen 35

Zusammenfassung Alle Operationen laufen mit Aufwand Problem Θ(h) Im Worst Case degeneriert Baum zu einer Liste Höhe ist von Ordnung Lösung h = O(n) Garantiere kleine Höhe Balancierte Bäume, so dass immer Ansatz h = Θ(lg n) Restrukturiere Baum falls nötig nach Einfügen und Löschen 37

Nächstes Mal Kapitel 13: Rot-schwarz Bäume 38