240 likes | 465 Views
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.
E N D
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.
Bäume Ein Baum ist ein spezieller Graph. Grundeigenschaften • es gibt einen Knoten ohne Vater: die Wurzel • jeder andere Knoten hat genau einen Vater Wurzel Beziehungen 6 2 6 ist Vater von 2 2 ist Sohn von 6 Innerer Knoten Blatt • Weitere Eigenschaften • keine Zyklen • von Wurzel zu einem Knoten genau ein Pfad Leere Elemente
Bäume Pfad Unterbaum 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 Knoten Unterbaum: beliebiger Knoten k mit allen Nachfolgern, k als Wurzel
Bäume Rekursive Definition Ein Baum ist leer oder er besteht aus einer Wurzel W und einer leeren oder nichtleeren Liste B1, B2, ..., Bnvon Bäumen. Von W zur Wurzel Wivon Bi führt jeweils eine Kante. W W2 W1 B2 B1 ... ... ... ... ...
Binärbäume Ein Binärbaum ist ein spezieller Baum. Rekursive Definition Ein Binärbaum ist leer oder er besteht aus einer Wurzel W und zwei Binärbäumen, dem linken und dem rechten Teilbaum. W W2 W1 B1 B2 ... ... ... ...
Binäre Suchbäume Ein Binärer Suchbaum ist ein spezieller Binärbaum Rekursive Definition Ein 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 • ...
Binäre Suchbäume - Beispiel Linker Teilbaum von 25: 3 < 25 10 < 25 11 < 25 Rechter Teilbaum von 25: 30 > 25 49 > 25 64 > 25 Linker Teilbaum von 10: 3 < 10 Rechter Teilbaum von 10 11 >10 . . .
Binäre Suchbäume - Traversierung Preorder Durchlauf: Wurzel – Linker Knoten – Rechter Knoten (WLR) 64 30 25 10 3 11 49
Binäre Suchbäume - Traversierung Inorder Durchlauf: Linker Knoten – Wurzel – Rechter Knoten (LWR) 3 10 11 25 30 49 64 Sortiereigenschaft: Nach einem Inorder-Durchlauf ist die Zahlenfolge aufsteigend sortiert!
Binäre Suchbäume - Traversierung Postorder Durchlauf: Linker Knoten – Rechter Knoten – Wurzel (LRW) 3 11 10 30 64 49 25
Binäre Suchbäume - Traversierung Levelorder Durchlauf: Ebenenweise Zuerst Wurzel, dann Söhne der Wurzel, . . . 25 10 49 3 11 30 64
Binäre Suchbäume - Operationen Einfügen Beispiel: 70 25 70 > 25 49 10 70 > 49 70 > 64 64 3 11 30 70 NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL
Binäre Suchbäume - Operationen Löschen 1. Fall: Ein Blatt Beispiel: 3 25 49 10 64 3 11 30 70 NIL NIL NIL NIL NIL NIL NIL NIL NIL
Binäre Suchbäume - Operationen Löschen 2. Fall: Ein innerer Knoten mit 1 Nachfolger Beispiel: 10 25 49 10 64 11 30 NIL 70 NIL NIL NIL NIL NIL NIL NIL
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 64 NIL NIL NIL NIL 70 NIL NIL