Löschen von Knoten (Wurzel) - Institut für Geodäsie und

Werbung
Institut für Kartographie und Geoinformation
Diskrete Mathematik I
Vorlesung 8
02.12.99
-Binärer Suchbaum II-
Übersicht
• Binärer Suchbaum
– Suchen von Knoten
– Löschen von Knoten (Wurzel)
– Durchlaufstrategien
• Preorder
• Breitendurchlauf
2
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
3
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.
4
Löschen von Knoten (Wurzel)
• Rechter Unterbaum ist unbesetzt
16
10
9
14
13
15
5
Löschen von Knoten (Wurzel)
• Rechter Unterbaum ist unbesetzt
Unterbaum bildet
einen
binären Baum
10
9
14
13
15
6
Löschen von Knoten (Wurzel)
• Beide Unterbäume sind besetzt
16
10
24
9
14
13
18
15
7
Löschen von Knoten (Wurzel)
• Beide Unterbäume sind besetzt
Suchbaum zerfällt in
zwei disjunkte Bäume
Es muß eine neuer Knoten, der die
Wurzel bildet, gefunden werden.
10
24
9
14
13
18
15
8
Löschen von Knoten (Wurzel)
• Beide Unterbäume sind besetzt
16
10
24
9
14
13
18
Kriterien:
Der Knoten muß größer
sein, als die Wurzel des
linken Unterbaums.
Der Knoten muß kleiner
sein als die Wurzel des
rechten Unterbaums.
15
9
Löschen von Knoten (Wurzel)
• Beide Unterbäume sind besetzt
16
10
24
9
14
13
18
15
Kandidaten
10
Löschen von Knoten (Wurzel)
• Beide Unterbäume sind besetzt
15
10
24
9
14
18
13
11
Durchlaufstrategien
• Preorder
– Die Wurzel wird vor den Unterbäumen besucht,
die Unterbäume werden von links nach rechts abgearbeitet
• Breitendurchlauf
– Mit einem Knoten werden seine Nachbarn
von links nach rechts besucht
12
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
13
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16
14
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10
15
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9
16
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9, 14
17
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9, 14, 13
18
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9, 14, 13, 15
19
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9, 14, 13, 15, 24
20
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9, 14, 13, 15, 24, 18
21
Durchlaufstrategie: Preorder
16
10
24
9
14
13
18
15
16, 10, 9, 14, 13, 15, 24, 18
22
Durchlaufstrategie: Preorder
void PreOrder() {
PreOrder(wurzel);
}
private void PreOrder(Knoten aktuell) {
if (aktuell != null) {
System.out.println(aktuell.GibWert());
PreOrder(aktuell.GibLinks());
PreOrder(aktuell.GibRechts());
}
}
23
Schönen Dank
für Ihre Aufmerksamkeit und
Auf Wiedersehen
Herunterladen