BÄ U M E Informatik 2, Bäume ❑ informal: Modell für beliebige hierarchische Strukturen, Klassifikationsschemata ❑ formal: Ein Baum ist ein gerichteter Graph mit den Eigenschaften (1) Es gibt einen ausgezeichneten Knoten, die Wurzel, ohne Vorgängerknoten. (2) Von der Wurzel gibt es zu jedem anderen Knoten im Graphen genau einen gerichteten Weg. a a b d c e b d monika.heiner@informatik.tu-cottbus.de a c e b d c e SS 2013 3.1 - 1 / 16 BE I S P I E L E I Informatik 2, Bäume SOFTWARE DEPENDABILITY FAULT AVOIDANCE development phase FAULT PREVENTION FAULT REMOVAL MANUAL (HUMAN-BASED) COMPUTER-AIDED animation / simulation / testing context checking (static analysis) consistency checking (verification) operation phase FAULT TOLERANCE FAULT MASKING DEFENSIVE DIVERSITY FAULT RECOVERY monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 2 / 16 BEISPIELE II Informatik 2, Bäume 1 1.1 1.1.1 1.1.2 1.2 1.3 1.3.1 1.3.2 1.3.3 2 2.1 2.1.1 2.1.2 2.1.3 2.2 3 . . . ((()())((()))) monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 3 / 16 BEGRIF FE I Informatik 2, Bäume ❑ Wurzel kein Vorgängerknoten a ❑ Blätter keine Nachfolgerknoten ❑ innere Knoten alle anderen b ❑ Unterbäume eines Knotens Bäume, mit den direkten Nachfolgern als Wurzeln c d e f g h i monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 4 / 16 BEGRIF FE II Informatik 2, Bäume ❑ Vater der direkte Vorgängerknoten a ❑ Sohn/Kind, linkestes Kind die direkten Nachfolgerknoten ❑ Bruder, rechter Bruder -> die anderen, über den Vater erreichbaren Kinder b ❑ Vorfahre, Nachfahre gerichtete Weg von a nach b -> jeder Knoten ist von sich selbst Vorfahre bzw Nachfahre c d e f g h i ❑ echter Vorfahre/Nachfahre alle, außer der Knoten selbst monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 5 / 16 BEGRIF FE III Informatik 2, Bäume ❑ Länge eines Weges Anzahl der Kanten = Anzahl der Knoten - 1 a -> Länge des Weges (a,a) = 0 ❑ Höhe eines Knotens Länge des längsten Weges vom Knoten zu einem Blatt b ❑ Höhe eines Baumes Höhe der Wurzel = Länge des längsten Weges = log b n (idealerweise) ❑ Tiefe eines Knoten Länge des eindeutigen Weges von der Wurzel zu diesem Knoten monika.heiner@informatik.tu-cottbus.de c d e f g h i SS 2013 3.1 - 6 / 16 WICHTIGSTE EIGENSCHAFT Informatik 2, Bäume ❑ Anzahl Kanten = Anzahl Knoten - 1 -> gilt nicht für leeren Baum -> lineare Abhängigkeit für Bäume !!! -> quadratische Abhängigkeit für allgemeine Graphen ❑ Verfahren, die (im worst-case) auf dem Durchlaufen aller Kanten beruhen, sollten für Bäume wesentlich günstiger (effizienter) ausfallen. ... ❑ rekursive Definition von Bäumen -> top-down -> bottom-up monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 7 / 16 DURCHLAUFEN EINES BAUMES Informatik 2, Bäume ❑ algorithmisches Grundproblem auf Bäumen (und Graphen allg.) -> Aufsuchen jedes Knotens genau einmal ❑ abstrakt gesehen handelt es sich darum, aus einem (2-dim.) Baum mit n Knoten eine lineare Liste mit denselben n Knoten zu machen, d. h. a b 2-dim. Baum -> 1-dim. Liste ❑ die rekursive Struktur von Bäumen führt zu folgenden naheliegenden rekursiven Durchlaufverfahren monika.heiner@informatik.tu-cottbus.de c d e f g h i SS 2013 3.1 - 8 / 16 DURCHLAUFEN EINES BAUMES, PSEUDOKODE Informatik 2, Bäume ❑ Preorder (B): Wurzel von B; Knoten im linken Unterbaum in Preorder; Knoten der weiteren Unterbäume in Preorder; (1) (2) (3) ❑ Postorder (B): Knoten im linken Unterbaum in Postorder; Knoten der weiteren Unterbäume in Postorder; Wurzel von B; (2) (3) (1) ❑ Inorder (B): Knoten im linken Unterbaum in Inorder; Wurzel von B; Knoten der weiteren Unterbäume in Inorder; monika.heiner@informatik.tu-cottbus.de SS 2013 DURCHLAUFEN EINES BAUMES, BEOBACHTUNGEN (2) (1) (3) 3.1 - 9 / 16 Informatik 2, Bäume ❑ Grundregeln -> Start an der Wurzel -> entgegen Uhrzeigersinn -> so dicht wie möglich an der Wurzel bleibend ❑ ein Nichtblatt wird in die Liste aufgenommen (“besucht”) -> Preorder - beim ersten Durchlauf -> Postorder - beim letzten Durchlauf -> Inorder - beim zweiten Durchlauf ❑ die Blätter sind in allen drei Ordnungsprinzipien gleich geordnet -> von links nach rechts ❑ unterschiedlich sind nur -> die Ordnung der Nichtblätter untereinander -> die Einordnung der Nichtblätter zwischen die Blätter monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 10 / 16 ANWENDUNGEN Informatik 2, Bäume ❑ Formelbäume -> Formelauswertung, prototypisch für “Programmauswertung” ❑ alphabetische Suchbäume -> strukturierte Schlüssel -> z. B. Suche im Telefonbuch Suche in großen, aber sortierten Datenbeständen ❑ allgemeine Suchbäume -> monolithische Schlüssel -> z. B. binäre Suche ❑ mehrdimensionale Suchbäume -> z. B. Viererbäume zur Speicherung von Pixelgraphiken -> z. B. die Katze im Viererbaum ❑ beliebter Spezialfall - binäre Bäume -> jeder Knoten hat maximal zwei Nachfolger (Unterbäume) monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 11 / 16 EINE KATZE UND NOCH ETWAS ANDERES Informatik 2, Bäume B A C D monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 12 / 16 SYSTEM DER PIXEL-NAMEN Informatik 2, Bäume B BB BA BC BD A DACB DACA DACC DACD CDB CDA C CDC CDD D monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 13 / 16 DER VIERERBAUM IN QUADRANT B Informatik 2, Bäume B B BA BB BC BD BDD BAA BBB BACA BBDB monika.heiner@informatik.tu-cottbus.de BCC BCAC SS 2013 BDCC 3.1 - 14 / 16 DIE HAUPTKNOTEN EINES VIERERBAUMES A B C Informatik 2, Bäume B A C D D ROTIEREN DER HAUPTKNOTEN D A B A D B C C monika.heiner@informatik.tu-cottbus.de SS 2013 DREHEN DES VIERERBAUM IM QUADRANTEN B 3.1 - 15 / 16 Informatik 2, Bäume B B monika.heiner@informatik.tu-cottbus.de SS 2013 3.1 - 16 / 16