Bäume A^ Wenn aA und lA^ und rA^, so (a,l,r)A^. Def. Wurzel, Unterbaum, Kind, Teilbaum Knoten von x: Wurzel eines nichtleeren Teilbaumes von x Blatt: Knoten ohne Nachfolger (d.h. ein Teilbaum der Gestalt (a, , ) ) heißt. Beispiel: Formelbäume über A= (x,y,z,+,*) Formel x*y + x*z entspricht Baum (+,(*,(x, , ),(y, , )),(*,(x, , ),(z, , ))) graphische Darstellung: + * x * y x z Verallgemeinerungen: n-äre Bäume:,jeder Knoten entweder keinen oder genau n Nachfolger endlich verzweigten Bäume: jeder Knoten beliebige (endliche) Zahl von Nachfolgern Beispiel: Aufrufbäume einer rekursiven Funktion Wurzel ist der Name der Funktion mit den Eingabewerten. Nachfolger jeden Knotens sind die bei der Auswertung aufgerufenen Funktionen mit ihren Eingabewerten. Beispiel: inverse(„ABC“) ) rest(„ABC“) inverse(„BC“) first(„ABC“) ° rest(„BC“) inverse(„C“) first(„BC“) ° rest(„C“) inverse(„“) first(„C“) ° verkürzter Aufrufbaum: nur rekursive Aufrufe; Beispiel: fib(5) fib(3) fib(4) fib(3) fib(2) fib(2) fib(2) fib(1) fib(1) Aufrufkomplexität: Anzahl der Knoten im verkürzten Aufrufbaum Beispiel: Aufrufkomplexität der Fibonacci-Funktion: 1, falls n 2 fibComp(n) 1 fibComp(n 1) fibComp(n 2), sonst Theorem: fibComp(n) 2 * fib(n) 1 Bew. Induktion nach n. Für n=1,2 klar, für n>2: fibComp(n) 1 fibComp(n 1) fibComp(n 2) I .V . 1 2 * fib(n 1) 1 2 * fib(n 2) 1 2 * ( fib(n 1) fib(n 2)) 1 2 * fib(n) 1 Mit Gleichung von Binet: n n 2 1 5 1 5 1. fibComp(n) 5 2 2 Wertetabelle N 3 5 10 20 30 40 50 60 70 80 90 100 fibComp(n) 3 9 109 13529 1.6*106 2*108 2.5*1010 3*1012 3.8*1014 4.6*1016 5.7*1018 7*1020 Zeitaufwand für n=100 bei 10.000 Aufrufen pro Sekunde etwa 2,2 Milliarden Jahre Graphen Graph: bildliche Darstellung einer binären Relationen über einer endlichen Grundmenge Kreis (Knoten): Element der Grundmenge Pfeil (Kante): Elemente in der Relation enthalten Beispiel: Relation {(A,B),(B,C),(C,B),(C,A),(B,D),(C,D)} B A C D Symmetrische Relation: Pfeile immer in beide Richtungen (ungerichteter Graph). Alternative Definition: Graphen als Tupel (V,E) V eine endliche Menge von Knoten (vertices) E eine endliche Menge von Kanten (edges) zu jeder Kante genau ein Anfangs- und ein Endknoten. Quelle: Knoten, der nicht Endknoten ist Senke: Knoten, der nicht Anfangsknoten ist Isolierter Knoten: weder Anfangs- noch Endknoten Weitere alternative Definition: Adjazenzmatrix Graph ist endliche Matrix (Tabelle) mit booleschen Werten Zeilen und Spalten sind mit der Grundmenge beschriftet Eintrag X gibt an, ob das Paar (Zeile, Spalte) in der Relation enthalten A B C D A X B X X C X X X D Graphen können Zyklen enthalten: keine einfache induktive Definition möglich endlich verzweigte Bäume sind zyklenfreie Graphen mit genau einer Quelle Kapitel 2: Informationsdarstellung 2.1 Bits und Bytes, Zahl- und Zeichendarstellungen (siehe Gumm/Sommer * Kap.1.2/1.3) Darstellung, Repräsentation: Abbildung von Informationen in maschinell verarbeitbarer Form Bit (binary digit): kleinste Einheit der Informationsdarstellung (genau zwei Werte) Realisierungsmöglichkeiten: an/aus, geladen/ungeladen, weiss/schwarz, magnetisiert/entmagnetisiert, reflektierend/lichtdurchlässig, … Ein Bit repräsentiert den kleinstmöglichen Informationsgehalt (Antwort auf Ja/Nein-Frage) Repräsentation komplexerer Informationen durch Tupel oder Folgen von Bits. Beispiel: Himmelsrichtungen (8 Möglichkeiten, durch Bitfolge der Länge 3 codiert) 000 = Nord 001 = Nordost 010 = Ost 011 = Südwest 100 = Süd 101 = Südost 110 = West 111 = Nordwest 2n mögliche Bitfolgen der Länge n (| |=2 | n |=2n) Byte: Folge von 8 Bit; ein Byte kann repräsentieren (z.B.): ein Zeichen (falls das Alphabet weniger als 28 Zeichen enthält) eine Zahl zwischen 0 und 255, eine Zahl zwischen -128 und +127, Farbcodierung eines Punkts in einer Graphik, genannt „Pixel“ (picture element) 8 Bit: Byte 16 Bit: Halbwort 32 Bit: Wort 64 Bit: Doppelwort 128 Bit: Quadwort 210 = 1024 1000 = 103 Präfixe: k = M = G = T = P = E = 1024 = 210 103 2 20 1024 = 1048576=2 106 10243 = 230 109 10244 = 240 1012 5 50 1024 = 2 1015 10246 = 260 1018 (k = Kilo) (M = Mega) (G = Giga) (T = Tera) (P = Peta) (E = Exa) 1 GByte: entweder 230 = 10243 = 1.073.741.824 oder 109 = 1.000.000.000 Byte. gängige Größenordnungen: Notiz: ~200 B Brief: ~3 kB Dos-Programm: ~300 kB Diskettenkapazität: 1,44 MB Windows-Programm: ~ 1 MB Musiktitel: ~40 MB (im MP3-Format ~4 MB) Zip-Diskette: ~120 MB Hauptspeichergröße: 512 MB – 2GB CD-ROM Kapazität: ~ 700 MB DVD (Digital Versatile Disk): ~ 4,7 bzw. ~ 9 GB Festplatte: ~80-600 GB.