Diskrete Mathematik I Vorlesung 6 Binärer Suchbaum II.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Klassen - Verkettete Liste -
Suchbäume unterstützen alle unten angegebenen Operationen für dynamische Mengen K effizient: Search(K ,k) ---- Suche ein Element x von K mit Schlüssel.
Claudio Moraga; Gisbert Dittrich
B-Bäume.
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
Durchlaufen eines Binärbaumes
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Sortieren mit Binären Bäumen
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 12 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Einführung in die Programmierung Anweisungen und Datentypen
Kapitel 2: Datenstrukturen
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursion mit Listen: Quicksort
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Vorlesung Binärer Suchbaum II-
Graphen und Bäume.
Algorithmen und Datenstrukturen Übungsmodul 8
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Diskrete Mathematik II
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Rekursion-
Binärer Suchbaum IV AVL-Baum I
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-
Binärer Baum, Binärer Suchbaum I
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Binärer Suchbaum I-
Diskrete Mathematik I Vorlesung 7 Binärer Suchbaum III.
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Binärbäume.
Klausur „Diskrete Mathematik II“
Zwei Denkansätze zur Klasse Schlange
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Kniffelergebnisse.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
Heapsort-Algorithmus
2. Die rekursive Datenstruktur Baum 2.3 Baum und Kompositum
 Präsentation transkript:

Diskrete Mathematik I Vorlesung 6 Binärer Suchbaum II

Übersicht Der Binäre Baum Binärer Suchbaum Definition Beispiel 1 Übersicht Der Binäre Baum Binärer Suchbaum Definition Beispiel Die Klasse Knoten Die Klasse Binärer Suchbaum (BST) FügeEin Rekursiv Suchen von Knoten

Der Binäre Baum n L R Ein leerer Baum ist ein binärer Baum 2 Der Binäre Baum Ein leerer Baum ist ein binärer Baum Sind L und R zwei binäre Bäume und w ein Knoten mit dem Inhalt n, dann ist die Verknüpfung von w, L und R ein binärer Baum. n L R

Binärer Suchbaum n <n >n 3 Binärer Suchbaum Ein binärer Baum B ist ein binärer Suchbaum, falls er leer ist oder die folgenden Eigenschaften erfüllt sind: die beiden Unterbäume sind binäre Suchbäume die Beschriftungen der Knoten des linken Suchbaums sind kleiner als die Beschriftung der Wurzel die Beschriftungen des rechten Suchbaums sind größer als die Beschriftung der Wurzel n <n >n

4 Binärer Suchbaum Aufbau eines binären Suchbaums aus folgenden Elementen: 9 4 17 13 2 23 7

5 Binärer Suchbaum 9 4 17 2 7 13 23

Die Klasse Knoten class Knoten { private int wert; 6 Die Klasse Knoten class Knoten { private int wert; private Knoten links, rechts; Knoten(int i) { wert = i; links = rechts = null; } void SetzeWert(int i) { wert = i; } int GibWert() { return wert; } void SetzeLinks(Knoten k) { links = k; } Knoten GibLinks() { return links; } void SetzeRechts(Knoten k) { rechts = k; } Knoten GibRechts() { return rechts; } }

Die Klasse Binärer Suchbaum (BST) 7 Die Klasse Binärer Suchbaum (BST) class BST { private Knoten Wurzel; class Knoten {...} BST() { wurzel = null; } void FügeEin(int i) { wurzel = FügeEin(wurzel, i); } Aufruf der rekursiven Prozedur

FügeEin Rekursiv private Knoten FügeEin(Knoten aktuell, int ein) { 8 FügeEin Rekursiv private Knoten FügeEin(Knoten aktuell, int ein) { if (aktuell == null) { aktuell = new Knoten(ein);} else { if (ein < aktuell.GibWert()) aktuell.SetzeLinks(FügeEin(aktuell.GibLinks(), ein)); if (ein > aktuell.GibWert()) aktuell.SetzeRechts(FügeEin(aktuell.GibRechts(), ein)); } return aktuell;

Suchen von Knoten Suche einer Zahl k in einem binären Suchbaum B 9 Suchen von Knoten Suche einer Zahl k in einem binären Suchbaum B B ist leer k kann nicht im Baum sein. B ist nicht leer B.wert = k : k ist gefunden, d.h. bereits in B vorhanden. B.wert < k : Suche im rechten Unterbaum von B. B.wert > k : Suche im linken Unterbaum von B.

10 Suchen von Knoten Suche für k = 15 18 14 9 10 24 16 13 15 A 13x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 15 k < 16 A 13x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 15 k > 10 A 13x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 15 k > 14 A 13x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 15 k = 15 A 13x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 11 k < 16 A 10x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 11 k > 10 A 10x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 11 k < 14 A 10x

Suchen von Knoten 18 14 9 10 24 16 13 15 Suche für k = 11 k nicht vorhanden A 10x

Suchen von Knoten class BST { ... boolean Suche(int i) { 12 Suchen von Knoten class BST { ... boolean Suche(int i) { return Suche(wurzel, i); } private boolean Suche(Knoten aktuell, int i) { boolean gefunden = false; if (aktuell != null) { gefunden = (aktuell.GibWert() == i) ; if (aktuell.GibWert() < i) gefunden = Suche(aktuell.GibRechts(), i); if (aktuell.GibWert() > i) gefunden = Suche(aktuell.GibLinks(), i); return gefunden; ...} Vergleich