Top Banner
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-
21

Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

Apr 06, 2016

Download

Documents

Rudolf Heintze
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

Institut für Kartographie und Geoinformation

Diskrete Mathematik IVorlesung 7

25.11.99

-Binärer Suchbaum I-

Page 2: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

2

Ü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

Page 3: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

3

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üpfungvon w, L und R ein binärer Baum.

n

L R

Page 4: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

4

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

Page 5: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

5

9 4 17 13 2 23 7

Binärer Suchbaum

Aufbau eines binären Suchbaums aus folgenden Elementen:

Page 6: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

6

7 232 13

174

9

Binärer Suchbaum

Page 7: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

7

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; }

}

Page 8: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

8

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

Page 9: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

9

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;

}

Page 10: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

10

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.

Page 11: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

11

Suchen von Knoten

18149

10 24

16

13 15

• Suche für k = 15

Page 12: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

12

Suchen von Knoten

18149

10 24

16

13 15

• Suche für k = 15

k < 16

Page 13: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

13

Suchen von Knoten

18149

10 24

16

13 15

• Suche für k = 15

k > 10

Page 14: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

14

Suchen von Knoten

18149

10 24

16

13 15

• Suche für k = 15

k > 14

Page 15: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

15

Suchen von Knoten

18149

10 24

16

13 15

• Suche für k = 15

k = 15

Page 16: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

16

Suchen von Knoten

• Suche für k = 11

18149

10 24

16

13 15

k < 16

Page 17: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

17

Suchen von Knoten

• Suche für k = 11

18149

10 24

16

13 15

k > 10

Page 18: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

18

Suchen von Knoten

18149

10 24

16

13 15

• Suche für k = 11

k < 14

Page 19: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

19

Suchen von Knoten

• Suche für k = 11

k nicht vorhanden

18149

10 24

16

13 15

Page 20: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

20

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

Page 21: Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung 7 25.11.99 -Binärer Suchbaum I-

Schönen Dank für Ihre Aufmerksamkeit und

Auf Wiedersehen