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 [email protected] 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 [email protected] 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 . . . ((()())((()))) [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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; [email protected] 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 [email protected] 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) [email protected] SS 2013 3.1 - 11 / 16 EINE KATZE UND NOCH ETWAS ANDERES Informatik 2, Bäume B A C D [email protected] 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 [email protected] 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 [email protected] 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 [email protected] SS 2013 DREHEN DES VIERERBAUM IM QUADRANTEN B 3.1 - 15 / 16 Informatik 2, Bäume B B [email protected] SS 2013 3.1 - 16 / 16