Graphen und Bäume

Post on 11-Jan-2016

31 views 1 download

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

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

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

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

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

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

Bäume - Beispiele

7

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

Binärbäume - Beispiele (1)

9

Binärbäume - Beispiele (2)

10

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

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

Binäre Suchbäume - Traversierung

Preorder

Durchlauf:

Wurzel – Linker Knoten – Rechter Knoten (WLR)

25

10

3 11

49

30

64

13

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

Binäre Suchbäume - Traversierung

Postorder

Durchlauf:

Linker Knoten – Rechter Knoten – Wurzel (LRW)

25

10

3 11

49

30

64

15

Binäre Suchbäume - Traversierung

Levelorder

Durchlauf:

Ebenenweise

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

25

10

3 11

49

30

64

16

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

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

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

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