Vorlesung Datenstrukturen Bäume Grundlagen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 331 Motivation Lineare Listen Lineare Listen sind eine eindimensionale Datenstruktur, d.h. es besteht exakt eine Beziehung in eine Richtung: Ein Listenelement besitzt genau einen Nachfolger und genau einen Vorgänger (auf den direkt nur bei doppelt verketteter Liste zugegriffen werden kann). Nachteile von Listen Ausdrucksmächtigkeit der Modellierung: • Viele Strukturen der Realwelt sind hierarchisch organisiert und diese Zusammenhänge lassen sich nicht adäquat bzw. überhaupt nicht mit Listen (und auch nicht mit Feldern) darstellen. Suchoperationen nach einem beliebigen Listenelement laufen generell in O(n). Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 332 Hierarchische Strukturen Beispiel Fußball Weltmeisterschaft Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 333 Baum - Definitionen (1) Modellierung von Hierarchien Die Modellierung hierarchischer Zusammenhänge kann mit Hilfe der Datenstruktur Baum geschehen. Baum Nichtleere Sammlung von Knoten und Kanten Knoten Objekt, das Informationen enthält Kante Ungerichtete Verbindung zwischen zwei Knoten Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 334 Beispiel Stammbaum Person (P) Ps Vater (VP) VPs Vater (VVP) Ps Mutter (MP) VPs Mutter (MVP) MPs Vater (VMP) MPs Mutter (MMP) MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VMVP) (MMVP) (VVMP) (MVMP) (VMMP) (MMMP) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 335 Beispiel Stammbaum - Knoten Person (P) Ps Vater (VP) VPs Vater (VVP) Ps Mutter (MP) Knoten VPs Mutter (MVP) MPs Vater (VMP) MPs Mutter (MMP) MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VMVP) (MMVP) (VVMP) (MVMP) (VMMP) (MMMP) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 336 Beispiel Stammbaum - Kanten Person (P) Ps Vater (VP) VPs Vater (VVP) Ps Mutter (MP) Kanten VPs Mutter (MVP) MPs Vater (VMP) MPs Mutter (MMP) MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VMVP) (MMVP) (VVMP) (MVMP) (VMMP) (MMMP) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 337 Definitionen (2) Vorgänger eines Knotens Jeder Knoten (außer der Wurzel) besitzt genau einen (durch eine Kante verbundenen) Vorgängerknoten (alt. Bezeichnungen: Übergeordneter Knoten, Elternknoten). Nachfolger eines Knotens Jeder Knoten kann eine beliebige Menge an (durch Kanten verbundenen) Nachfolgerknoten besitzen (alt. Bezeichnungen: Untergeordnete Knoten, Kindknoten). Wurzel Knoten eines Baums, der keinen Vorgänger besitzt. Blatt Knoten ohne Nachfolger werden als Blatt- oder Terminalknoten bezeichnet. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 338 Beispiel Stammbaum Wurzel Person (P) Ps Vater (VP) VPs Vater (VVP) Ps Mutter (MP) VPs Mutter (MVP) MPs Vater (VMP) MPs Mutter (MMP) MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VMVP) (MMVP) (VVMP) (MVMP) (VMMP) (MMMP) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 339 Beispiel Stammbaum - Blätter Person (P) Ps Vater (VP) VPs Vater (VVP) Ps Mutter (MP) MPs Vater (VMP) VPs Mutter (MVP) MPs Mutter (MMP) MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VMVP) (MMVP) (VVMP) (MVMP) (VMMP) (MMMP) Blätter Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 340 Beispiel Stammbaum - Pfad Person (P) Ps Vater (VP) Ps Mutter (MP) Pfad Pfad Liste disjunkter Knoten, bei der aufeinander MPs Vater (VMP) MPs Mutter (MMP) folgende Knoten durch Kanten verbunden sind Definierende Eigenschaft eines Baumes Zwischen zwei beliebigen Knoten eines Baumes VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VVMP) (MVMP) (VMMP) (MMMP) gibt es genau einen Pfad! Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 341 Definitionen (3) Ebene (Rekursive Definition) Die Ebene eines Baumknotens ist um 1 höher als die Ebene seines Vorgängerknotens. Die Wurzel eines Baumes liegt auf Ebene 0. Gleichgeordnete Knoten Knoten die auf einer Ebene liegen werden als gleichgeordnete Knoten bezeichnet. Höhe eines Baums Die Höhe eines Baums bezeichnet die maximale Anzahl seiner Ebenen (rek. Definition: Die Höhe eines Baumes ist um 1 größer als die Maximalhöhe der Teilbäume seiner Wurzel). Geordneter Baum Die Reihenfolge der Nachfolger eines Knotens ist von Bedeutung und deshalb festgelegt. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 342 Beispiel Stammbaum Person (P) Ps Vater (VP) VPs Vater (VVP) Ps Mutter (MP) VPs Mutter (MVP) MPs Vater (VMP) MPs Mutter (MMP) Gleichgeordnete Knoten der Ebene 2 MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter (VMVP) (MMVP) (VVMP) (MVMP) (VMMP) (MMMP) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 343 Mehrwegbäume (1) M-ärer Baum Geordneter Baum, dessen Knoten jeweils genau M Nachfolger besitzen. Problem Wie behandelt man Knoten mit einer geringeren Nachfolgeranzahl? Externe Knoten (äußere Knoten) Bezeichnen spezielle Knoten ohne Nachfolger. Sie dienen als Pseudoknoten, auf die Knoten verweisen können, die nicht M Nachfolger besitzen. Interne Knoten (innere Knoten) Besitzen genau M Nachfolger (die jedoch auch externe Knoten sein können). Blattknoten eines M-ären Baums Sind interne Knoten, die ausschließlich externe Nachfolgerknoten besitzen. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 344 Mehrwegbäume (2) Ausgeglichener M-ärer Baum Auf jeder Ebene i befinden sich genau Mi Knoten. Die einzige Ausnahme stellt die letzte Ebene dar, auf der sich auch weniger Knoten befinden können. Voller Baum Auf jeder inneren Ebene eines Baumes sind genauso viele Knoten zu finden, wie durch die Anzahl der Wege möglich ist. Die Blattebene stellt eine Ausnahme dar und darf auch weniger Knoten enthalten. Vollständiger Baum Ein Baum ist voll und alle inneren Knoten der Blattebene liegen links bezüglich der externen Knoten. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 345 Spezialfälle (1) Unärer Baum (M=1) Jeder Knoten besitzt genau einen Nachfolgerknoten. Korrespondenz Unäre Bäume sind durch Listen darstellbar: • die Wurzel korrespondiert zum Listenkopf • es existiert nur ein Blattknoten (das Listenende), der auf einen externen Knoten verweist. Konsequenz Listen sind nur ein Spezialfall von Bäumen! Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 346 Spezialfälle (2) Binärbaum (M=2) Rekursive Definition: Ein Binärbaum ist entweder • ein externer Knoten oder • ein interner Knoten, der mit zwei Binärbäumen verbunden ist. Linker Teilbaum Erster Kindknoten eines internen Binärbaumknotens Rechter Teilbaum Zweiter Kindknoten eines internen Binärbaumknotens Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 347 Eigenschaften von Binärbäumen Ausgangspunkt sei ein Binärbaum mit N internen Knoten: Anzahl externer Knoten N+1 Kantenanzahl 2N Höhe h ld N < h ≤ N Korrespondenz zu geordneten Bäumen Jeder beliebige geordnete allgemeine Baum kann als Binärbaum dargestellt werden: Dazu verbindet man die linke Kante jedes Knotens mit seinem äußersten linken Nachfolger und die rechte Kante jedes Knotens mit seinem rechten gleichgeordneten Knoten. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 348 Eine offene Frage Laufzeit von Sortierverfahren Wir haben im Kapitel „Sortieren“ gesehen, dass die besten allgemeinen Sortierverfahren in O(n log n) laufen. Frage Kann es effizientere allgemeine Sortierverfahren für Felder geben? Basis der Antwort Um diese Frage beantworten zu können, wollen wir Sortieralgorithmen mit Hilfe sogenannter Entscheidungsbäume ausdrücken. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 349 Entscheidungsbaum Definition Ein Entscheidungsbaum ist ein binärer Baum, bei dem die von einem Knoten ausgehende Verbindung zum linken Teilbaum mit Ja und die Verbindung zum rechten Teilbaum mit Nein beschriftet ist. Allen inneren Knoten des Baumes ist eine Bedingung zugeordnet. Die Blätter des Baumes drücken dann über ihren Weg von der Wurzel alle möglichen Kombinationen dieser Bedingungen hinsichtlich erfüllt oder nicht erfüllt aus. Entscheidungsbaum für Sortieralgorithmen Eine Bedingung besteht aus dem Vergleich zweier Elemente der zu sortierenden Folge. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 350 Eigenschaften Blattanzahl Die Blätter repräsentieren den Endzustand zwischen allen möglichen Vergleichen aller möglichen Datenkonstellationen eines Feldes mit n Elementen. Um die Blattanzahl zu bestimmen müssen wir die Frage beantworten, wie viele unterschiedliche Arten es gibt, ein Feld mit n Elementen anzuordnen ➔ Antwort: Es gibt n! Permutationen. Fehlzustandsblattknoten Es existieren noch weitere Blattknoten, die inkonsistente Zustände ausdrücken (z.B. c<b, a<c, b<a). Obwohl diese Blattknoten für das Ergebnis der Sortierung keine Rolle spielen, müssen sie dahingehend berücksichtigt werden, dass die Anzahl möglicher Blattknoten nun auch größer als n! sein kann (Anzahl möglicher Anordnungen + Fehlzustände) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 351 Anzahl an Vergleichsoperationen Vergleichsoperation Eine Kante zwischen einem Knoten und seinem Elternknoten entspricht einer Vergleichsoperation. Sortierung einer bestimmten Datenkonstellation Die Anzahl der Kanten auf dem Weg von der Wurzel bis zu einem Blatt (=Pfadlänge) entspricht den notwendigen Vergleichen eines (hypothetischen) Sortieralgorithmus für eine bestimmte Datenkonstellation. Sortierung einer beliebigen Datenkonstellation Die durchschnittliche Anzahl von Kanten zwischen der Wurzel und allen sinnvollen Blattknoten entspricht der durchschnittlich benötigten Anzahl an Vergleichen eines (hypothetischen) Sortieralgorithmus‘. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 352 Performanz eines Sortieralgorithmus‘ Knotenanzahl eines vollständigen Binärbaums Wir wissen bereits, dass ein vollständiger binärer Baum mit i Ebenen 2i–1 Blätter und 2i–1–1 innere Knoten, also 2i–1 Knoten insgesamt besitzt. Knotenanzahl eines beliebigen Binärbaums Sei m die Anzahl der Blätter und k die Anzahl der inneren Knoten eines beliebigen Binärbaumes mit i Ebenen. Dessen Knotenanzahl wird in der Regel kleiner als die eines vollständigen Binärbaumes sein, d.h. k+m ≤ 2i–1. Konsequenz Für die Anzahl der inneren Knoten eines beliebigen Binärbaumes gilt: k ≤ 2i–1–1. Für die Anzahl der Blätter eines beliebigen Binärbaumes gilt: m ≤ 2i–1. Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 353 Performanz eines Sortieralgorithmus‘ Blattanzahl eines Entscheidungsbaums Ein Entscheidungsbaum ist ein Binärbaum mit mindestens n! Blättern, d.h. n! ≤ m ≤ 2i–1. Aus dieser Ungleichung können wir ableiten, wie viele Vergleiche ein beliebiger Sortieralgorithmus für ein Feld mit n Elementen im worst case durchführen muss. Wir formen n! ≤ 2i–1 um in ld(n!) ≤ i–1, d.h. dass die Pfadlänge von der Wurzel bis zu einem Blatt mindestens ld(n!) betragen muss. ld(n!) bedeutet O(n log n), d.h. im Schnitt können wir kein besseres Verhalten für einen Sortieralgorithmus erwarten (falls der Entscheidungsbaum nicht ausgeglichen ist, kann es zwar kürzere Pfade geben - z.B. für sortierte Datenkonstellationen bei InsertionSort, aber diese müssen durch längere Pfade wieder kompensiert werden). Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 354 Ende der Vorlesung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 355