Binäre Bäume Tree 1: Berechne Knoten- und Blattzahl, sowie die mittlere Weglänge bei einem vollständigen Binärbaum der Höhe h = 4, 5, 6, 10, 20. Tree 2: Gib die Strukturbäume an 1 + 2*3 –4 1 * 2 + 3 / 4 (a+b) – (c+d) ((a+b)*c –d)*e 1 * (2 + 3) / 4 Tree 3: Erstelle für folgende Terme den Strukturbaum und gib den Term in Postfixnotation an: a) a*(b+c) – d b) 3* a + c/ 5 c) a * b + c - d d) a * b +( c - d) e) (a - c) / (e - 11) f) ((a + b) /c)*(d – e*f) g) ((a + b) /c) * (d - e + f) Tree 4: Erstelle vollständig ausgeglichene Bäume mit n = 5, 6, 7, 8, 9, 11 Knoten. Fülle einen vollständig ausgeglichenen Baum mit n Knoten gemäß Inorder mit den Zahlen 1 bis n: Gib die Knotenreihenfolge für die Traversierungsarten Preorder und Postorder an: n= 7 ( n= 9) Tree 5: 1. Erstelle "von Hand" einen vollständig ausgeglichenen binären Baum derart, dass bei Preorder-Traversierung das Wort ALGORITHMUS gelesen wird. 2. Schreibe die Besuchsreihenfolge bei Inorder- und Postorder-Traversierung auf. 3. Bei Postorder-Traversierung eines Baumes wird das Wort POSTORDER ausgegeben. Gib den Baum an. Tree 6: Gib die Strukturbäume an ( a + b*c )*d (( a+ b ) /c )*(d - e * f) (( a + b) + c) +d a*(b+c) - d Welche Ausgaben liefert ein Postorderdurchlauf? Suchbäume Füge in einen leeren Suchbaum ein: S E A1 R C H Füge hinzu: Z, T, A2. (A1 ist kleiner als A2) Warum befindet sich der zweite Schlüsselwert A2 nicht in direkter Nachbarschaft des ersten Schlüsselwertes A1? Aufgaben NF 11; Seite 8 Suchbäume (Fortsetzung) Welche Traversierungsart ist zu wählen, damit die Knoten des Suchbaums in sortierter Reihenfolge ausgelesen werden? Zeichne den binären Suchbaum, der entsteht, wenn in einen leeren Baum die Buchstaben des Wortes I1NFORMATI2K (ABER, E1XAMPLE2) eingefügt werden. Wovon hängt die Laufzeit bei der Suche nach einem Knoten ab? Füge in einen leeren Suchbaum die Buchstaben A1SEA2RCHA3TF ein. Traversierung (1) Traversierung (2) Welche Besuchsreihenfolge ergibt sich bei den drei Traversierungsarten? a Der Baum wurde mittels eines Preorderdurchlaufs erzeugt. Gib die Reihenfolge der Wertzuweisungen an die Knoten an. 5 c b e d 2 Traversiere den Baum gemäß Postorder. 7 3 6 4 f g 8 Belege die Knoten des obigen Baums so mit Buchstaben, dass beim Inorderdurchlauf das Wort kubuntu gelesen wird. 1 Fülle einen vollständig ausgeglichenen Baum (Inorder) mit folgenden Zahlen so, dass ein Suchbaum entsteht. 1 6 10 15 17 23 30 41 56 81 1 2 3 4 5 6 7 8 9 10 6 10 17 23 41 56 81 93 95 99 100 Schreibe jeweils die Besuchsreihenfolge der Knoten bei Preorder- und Postorder-Traversierung auf. Aufgabe 4 Welche der Bäume sind (a) vollständig, (b) vollständig ausgeglichen, (c) Suchbäume ? 4 5 2 1 23 3 2 10 16 6 1 3 7 3 1 20 4 5 9 19 2 8 1 3 Aufgaben NF 11; Seite 9 21 Suchbaum mit den Knoteninhalten 6 10 17 23 41 56 81 93 95 99 56 Zeichne jeweils den neuen Baum Löschen von 17; Einfügen von 18; Löschen von 93; Löschen von 41; Löschen von 95; Einfügen von 92; Löschen von 56; Einfügen von 100; Löschen von 99; Einfügen von 98 17 10 6 95 93 41 23 81 Aufgabe: Beim Löschen soll der Baum ein Suchbaum bleiben! Aufgaben NF 11; Seite 10 99 Aufgabe Schreibe folgende Methoden int knotenzahl (BinBaum b) Ermittelt die Knotenzahl im Baum b. boolean istBlatt (BinBaum b) Ermittelt, ob Knoten mit Referenz b ein Blatt ist int innereKnoten(BinBaum b) Zählt die inneren Knoten. int blattKnoten(BinBaum b) Zählt die Blätter. boolean istAusgeglichen(BinBaum b) Stellt fest, ob ein binärer Baum vollständig ausgeglichen ist. Aufgaben NF 11; Seite 11