Hausaufgaben 10 - HS Schmalkalden

Werbung
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
Herunterladen