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. Quelle: Gumm, Einführung in die Informatik, S. 338 Ist jeder Kante eines Graphen ein Wert zugewiesen, so ist der Graph gewichtet.
Graph - Beispiele Strecke? Weg km Aachen → Dortmund Nein - Dortmund → Aachen Ja Dortmund → Bochum → Aachen 210 Verbindung? Weg Bit/s Client 2 → Client 1 Nein - Client 1 → Client 2 Ja Client 1→ Router 1 → Client 2 bei 20 Bits 3 s Quelle: Gumm, Einführung in die Informatik, S. 338
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, ..., Bn von Bäumen. Von W zur Wurzel Wi von Bi führt jeweils eine Kante. W B1 B2 W2 W1 ...
Bäume - Beispiele
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 B1 B2 W2 W1 ...
Binärbäume - Beispiele (1)
Binärbäume - Beispiele (2)
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) 25 10 3 11 49 30 64
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 64 70 > 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 NIL 11 30 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