Hausaufgaben 10 Einführung in die Programmierung II (SS 16) Institut: HS Schmalkalden Dozent: Prof. Dr. Christian Forler Url: https://studip.fh-schmalkalden.de Email: c.forler(at)hs-sm.de Abgabe: Per Email. Betreff muss den String [prog2] enthalten. Deadline: Montag, 20. Juni 2016, 8:00 Uhr Aufgabe 1 (10 Punkte) Binärbaum Implementieren Sie die Klasse BinaryTree (siehe UML-Klassendiagramm). Beachte Sie, dass es sich bei der Klasse Node um ein innere Klasse (Mitgliedsklasse) der Klasse BinaryTree handelt. Der zu implementiernde Binärbaum soll Objekte vom Typ Numbers (Zahlen) verwaltet. Bei einem Binärbaum handelt es sich um einen Baum bei dem jeder Knoten höchstens zwei Kinder (left, right) hat. Weitere Informationen zu Binärbäumen finden Sie unter https://de.wikipedia.org/wiki/Binärbaum. BinaryTree -root: Node +BinaryTree(root : Node) +boolean isEmpty() : boolean +add(n :Number) : void +hasNumber(n : Number) : boolean +printInOrder() : void +printPreOrder() : void +printPostOrder() : void Node -n : Number -left : Node -right : Node +Node(n : Number) +Getter() +Setter() • public void add(Number n) Einfügen einer Number in den Binärbaum. Ist n kleiner als die Wurzel wird der neue Knoten im linken Teilbaum hinzugefügt, ansonsten im rechten Teilbaum. Ist die Wurzel des Teilbaums kleiner als n wird der neue Knoten im linken Teilbaum hinzugefügt, ansonsten im rechten Teilbaum. Der Vorgang wird solange wiederholt bis das Ende des Baums (Blattknoten) erreicht wurde. 1 • public void printInOrder() Zuerst wird rekursive der linke Teilbaum ausgegeben, dann der Wurzelknoten und schließlich wird der rechte Teilbaum rekursiv ausgegeben. • public void printPreOrder() Zuerst wird der Wurzelknoten ausgegeben, dann wird der linke Teilbaum rekursiv ausgegeben und schließlich wird der rechte Teilbaum. • public void printPostOrder() Zuerst wird Wurzel Zuerst wird der rechte Teilbaum rekursive ausgegeben, dann der linke Teilbaum und am Ende wird der Wurzelknoten ausgegeben. Schreiben Sie eine Testanwendung, die einen Binärbaum mit der Wurzel 7 anlegt. Fügen Sie anschließend die folgenden Zahlen hinzu: 3.14, 5, 22.99, 1, 35, 14, 4, 2, 33, 44. Travesieren Sie den Baum anschließend pre-order, in-order und post-order. 2