Graphen und Bäume

20
Graphen und Bäume

description

Graphen und Bäume. Graph. Ein Graph besteht aus einer Menge von Knoten und Kanten. Die Knoten tragen Namen und sind durch die Kanten verbunden. Kann jede Kante eines Graphen in genau einer Richtung durchlaufen werden, so ist der Graph gerichtet. - PowerPoint PPT Presentation

Transcript of Graphen und Bäume

Page 1: Graphen und Bäume

Graphen und Bäume

Page 2: Graphen und Bäume

Graph

Ein Graph besteht aus einer Menge von Knoten und Kanten. Die Knoten tragen Namen und sind durch die Kanten verbunden.

Kann jede Kante eines Graphen in genau einer Richtung durchlaufen werden, so ist der Graph gerichtet. Ist jeder Kante eines Graphen ein Wert zugewiesen, so ist der Graph gewichtet.

2

Page 3: Graphen und Bäume

Graph - Beispiele

Strecke?

Weg km

Aachen → Dortmund

Nein - -

Dortmund → Aachen

JaDortmund → Bochum → Aachen

210

Verbindung?

Weg Bit/s

Client 2 → Client 1

Nein - -

Client 1 →Client 2

JaClient 1→ Router 1 → Client 2

bei 20 Bits 3 s 3

Page 4: Graphen und Bäume

Bäume

Ein Baum ist ein spezieller Graph.

Wurzel

Innerer Knoten

Blatt

Leere Elemente

Beziehungen

6 2 6 ist Vater von 2 2 ist Sohn von 6

Grundeigenschaften es gibt einen Knoten ohne Vater: die Wurzel jeder andere Knoten hat genau einen Vater

Weitere Eigenschaften

•keine Zyklen•von Wurzel zu einem Knoten genau ein Pfad 4

Page 5: Graphen und Bäume

Bäume

Pfad: alle Knoten von einem Knoten k1 zu einem Knoten k2 (z. B. 6 2 8)

Pfadlänge: Anzahl der Knoten von einem Knoten k1 zu einem Knoten k2

Tiefe des Baumes: das Maximum aller Pfadlängen von der Wurzel zu einem Blatt

Tiefe eines Knotens: Pfadlänge von der Wurzel zu diesem KnotenUnterbaum: beliebiger Knoten k mit allen Nachfolgern, k als Wurzel

Pfad

Unterbaum

5

Page 6: Graphen und Bäume

Bäume

Rekursive DefinitionEin Baum ist leer oder er besteht aus einer Wurzel W und einer leeren oder nichtleeren Liste B1, B2, ..., Bn von Bäumen. Von W zur Wurzel Wi von Bi führt jeweils eine Kante. W

B1 B2

W2W1

... ...... ... ...

6

Page 7: Graphen und Bäume

Bäume - Beispiele

7

Page 8: Graphen und Bäume

Binärbäume

Ein Binärbaum ist ein spezieller Baum.Rekursive DefinitionEin Binärbaum ist leer oder er besteht aus einer

Wurzel W und zwei Binärbäumen, dem linken und dem rechten Teilbaum. W

B1 B2

W2W1

...... ... ...

8

Page 9: Graphen und Bäume

Binärbäume - Beispiele (1)

9

Page 10: Graphen und Bäume

Binärbäume - Beispiele (2)

10

Page 11: Graphen und Bäume

Binäre Suchbäume

Ein Binärer Suchbaum ist ein spezieller Binärbaum

Rekursive DefinitionEin binärer Suchbaum ist leer oder besteht aus einer Wurzel und zwei binären Suchbäumen, dem linken und dem rechten Teilbaum. Der Inhalt des Wurzelknotens ist größer als alle Elemente im linken Suchbaum und kleiner als alle Elemente im rechten Suchbaum.

• alle Knotenwerte von B1 sind echt kleiner als W• alle Knotenwerte von B2 sind echt größer als W• ...

11

Page 12: Graphen und Bäume

Binäre Suchbäume - Beispiel

Linker Teilbaum von 25:3 < 2510 < 2511 < 25

Rechter Teilbaum von 25:30 > 2549 > 2564 > 25

Linker Teilbaum von 10:3 < 10

Rechter Teilbaum von 1011 >10

. . .

12

Page 13: Graphen und Bäume

Binäre Suchbäume - Traversierung

Preorder

Durchlauf:

Wurzel – Linker Knoten – Rechter Knoten (WLR)

25

10

3 11

49

30

64

13

Page 14: Graphen und Bäume

Binäre Suchbäume - Traversierung

Inorder

Durchlauf:

Linker Knoten – Wurzel – Rechter Knoten (LWR)

25

10

3 11

49

30

64

Sortiereigenschaft:Nach einem Inorder-Durchlauf ist die Zahlenfolge aufsteigend sortiert!

14

Page 15: Graphen und Bäume

Binäre Suchbäume - Traversierung

Postorder

Durchlauf:

Linker Knoten – Rechter Knoten – Wurzel (LRW)

25

10

3 11

49

30

64

15

Page 16: Graphen und Bäume

Binäre Suchbäume - Traversierung

Levelorder

Durchlauf:

Ebenenweise

Zuerst Wurzel, dann Söhne der Wurzel, . . .

25

10

3 11

49

30

64

16

Page 17: Graphen und Bäume

Binäre Suchbäume - Operationen

Einfügen

Beispiel: 70

25

10

49

311

30

64

70 > 2570 > 4970 > 64

70NILNIL NILNIL NILNIL NILNIL

NILNIL

17

Page 18: Graphen und Bäume

Binäre Suchbäume - Operationen

25

10

49

311

30

64

70NILNIL NILNIL NILNIL NIL

NILNIL

18

Löschen

1. Fall: Ein Blatt

Beispiel: 3

Page 19: Graphen und Bäume

Binäre Suchbäume - Operationen

25

10

49

11

30

64

70

NIL

NILNIL NILNIL NIL

NILNIL

19

Löschen

2. Fall: Ein innerer Knoten mit 1 Nachfolger

Beispiel: 10

Page 20: Graphen und Bäume

Binäre Suchbäume - Operationen

Löschen

3. Fall: Einen inneren Knoten mit 2 Nachfolgern

Vorgehen:Suche Knoten mit kleinstem Element im rechten Teilbaum und ersetze damit zu löschenden Knoten

Beispiel: 49

25

49

11

30

64NIL

70

NIL

NILNIL

NILNIL

20