Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Suchbäume.

Ähnliche Präsentationen


Präsentation zum Thema: "Suchbäume."—  Präsentation transkript:

1 Suchbäume

2 Binärbäume Miriam Johanna Thorsten Dorothea Karl Ruth Wilhelm Berta Erich Judith Lorenz Noemi Stephan Ute Xaver In einem Binärbaum hat – von der Wurzel ausgehend – jeder Knoten zwei Baumelemente als Nachfolger. Diese Nachfolger sind weitere Knoten oder Abschlüsse (wie bei der Liste). Wenn die Knoten so sortiert sind, dass der linke Nachfolger stets kleiner und der rechte Nachfolger stets größer als der aktuelle Knoten ist, dann sprechen wir von einem geordneten Baum oder einem Suchbaum.

3 Durchlaufreihenfolgen (1)
Berta Dorothea Erich Johanna Judith Karl Lorenz Miriam Noemi Ruth Stephan Thorsten Ute Wilhelm Xaver Wenn man in einem Suchbaum immer zuerst den linken Teilbaum besucht, dann den aktuellen Knoten und schließlich den rechten Teilbaum, dann erhält man die Daten des Baums in aufsteigender Reihenfolge (in order). public void druckeInOrder () { linkerNachfolger.druckeInOrder (); inhalt.druckeAufKonsole (); rechterNachfolger.druckeInOrder (); }

4 Durchlaufreihenfolgen (2)
Miriam Johanna Dorothea Berta Erich Karl Judith Lorenz Thorsten Ruth Noemi Stephan Wilhelm Ute Xaver Wenn man in einem Suchbaum immer zuerst den aktuellen Knoten besucht, dann den linken Teilbaum und schließlich den rechten Teilbaum, dann erhält man die Daten des Baums in Präordnung (pre order). Das macht man zum Beispiel bei einer thematischen Gliederung. public void druckePreOrder () { inhalt.druckeAufKonsole (); linkerNachfolger.druckePreOrder (); rechterNachfolger.druckePreOrder (); }

5 Durchlaufreihenfolgen (3)
Berta Erich Dorothea Judith Lorenz Karl Johanna Noemi Stephan Ruth Ute Xaver Wilhelm Thorsten Miriam Wenn man in einem Suchbaum immer zuerst den linken Teilbaum besucht, dann den rechten Teilbaum und schließlich den aktuellen Knoten, dann erhält man die Daten des Baums in Postordnung (post order). Das tut man beim Rechenbaum, da man erst weiterrechnen kann, wenn man die Zwischenergebnisse kennt. public void druckePostOrder () { linkerNachfolger.druckePostOrder (); rechterNachfolger.druckePostOrder (); inhalt.druckeAufKonsole (); }

6 Wir suchen mit dem Suchwort "Judith".
Suchen im Suchbaum Miriam Miriam Johanna Johanna Thorsten Dorothea Karl Karl Ruth Wilhelm Berta Erich Judith Judith Lorenz Noemi Stephan Ute Xaver Wir suchen mit dem Suchwort "Judith". Wenn das Suchwort kleiner als der Eintrag des aktuellen Knotens ist, verzweigen wir nach links, ansonsten nach rechts, bis wir das Suchwort in einem Eintrag gefunden haben oder Misserfolg melden müssen, weil wir in einem Abschluss gelandet sind.

7 Einfügen in den Suchbaum
Miriam Miriam Johanna Thorsten Thorsten Dorothea Karl Ruth Ruth Wilhelm Berta Erich Judith Lorenz Noemi Noemi Stephan Ute Xaver Paul Wir wollen "Paul" hinzufügen. Dazu durchlaufen wir den Baum zuerst so, als ob wir "Paul" suchen würden. Anschließend fügen wir "Paul" anstelle desjenigen Abschlusses ein, an dem unsere Suche scheitert.

8 Suchdauer im Beispiel Miriam Miriam Johanna Thorsten Thorsten Dorothea Karl Ruth Wilhelm Wilhelm Berta Erich Judith Lorenz Noemi Stephan Ute Xaver Xaver Wir suchen den alphabetisch letzten Eintrag "Xaver". Im Suchbaum dauert das vier Schritte. Berta Berta Dorothea Dorothea Erich Erich Johanna Johanna Judith Judith Karl Karl Lorenz Lorenz Miriam Miriam Xaver Xaver Wilhelm Wilhelm Ute Ute Thorsten Thorsten Stephan Stephan Ruth Ruth Noemi Noemi In der zugehörigen geordneten Liste hingegen dauert es fünfzehn Schritte.

9 Zeitdauer in Formeln Wir gehen von n Knoten aus. Der Suchbaum soll balanciert sein, also kleinstmögliche Höhe haben. Einen Knoten im Baum suchen dauert höchstens Einen Knoten in der Liste suchen dauert höchstens Alle Knoten im Baum besuchen dauert höchstens Alle Knoten in der Liste besuchen dauert höchstens O(log n) O(n) O(n log n) Dabei steht O(f(n)) für C f(n) Rechenschritte, wobei C eine Konstante ist. Ein Suchbaum eignet sich, wenn oft nach einzelnen Knoten gesucht wird (wie im Lexikon). Eine Liste eignet sich, wenn oft für alle Knoten etwas zu tun ist (wie beim Rangierzug).

10 Zahlenwerte n log2 n log n 10 3,322 1 100 6,644 2 1000 9,966 3 10000
13,288 4 100000 16,610 5 19,932 6 23,253 7


Herunterladen ppt "Suchbäume."

Ähnliche Präsentationen


Google-Anzeigen