Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. /*
  2. Schreiben bzw. vervollständigen Sie gekennzeichnete Programmteile wie in den Kommentaren beschrieben.
  3. Verändern Sie aber nicht vorgegebene Methodenköpfe oder andere vorgegebene Programmteile!
  4. Verwenden Sie die gegebenen Testklassen zum Überprüfen Ihrer Lösung. Die Korrektheit dieser Testfälle
  5. ist notwendig, aber nicht hinreichend für eine korrekte Lösung. Es werden damit nur bestimmte
  6. Spezialfälle geprüft. Liefern die Testklassen keinen Fehler, garantiert dies noch nicht die
  7. Korrektheit Ihrer Lösung gemäß der Angabe.
  8. */
  9.  
  10. public class Aufgabe2 {
  11.  
  12. /*
  13. Aufgabe:
  14. Objekte der Klasse Tree stellen binäre Suchbäume über ganzen Zahlen mit Knoten vom Typ Node dar.
  15. Ergänzen Sie fehlende Teile der Klassen entsprechend den Kommentaren an den mit TODO gekennzeichneten Stellen.
  16. Hinweis: Die Methode 'add' ist bereits vollständig vorgegeben.
  17.  
  18. Punkte (maximal 20):
  19. 12 Punkte für removeLeaves,
  20. 8 Punkte für toString.
  21. */
  22.  
  23. // Diese Methode können Sie zum Testen nutzen. Sie geht nicht in die Beurteilung ein.
  24. public static void main(String[] args) {
  25.  
  26. Tree tree = new Tree();
  27. tree.add(5);
  28. tree.add(2);
  29. tree.add(7);
  30. tree.add(6);
  31. tree.add(8);
  32. tree.add(1);
  33. tree.add(1);
  34. tree.add(3);
  35.  
  36. System.out.println(tree); //[1,1,2,3,5,6,7,8]
  37. System.out.println();
  38.  
  39. tree.removeLeaves();
  40.  
  41. System.out.println(tree); //[1,2,5,7]
  42. System.out.println();
  43.  
  44. tree = new Tree();
  45. System.out.println(tree); //[]
  46.  
  47. }
  48. }
  49.  
  50. class Node {
  51.  
  52. // Deklarieren Sie hier keine weiteren globalen/Objekt- Variablen.
  53. // Innerhalb der Methoden können lokale Variablen genutzt werden.
  54.  
  55. // Den Konstruktor nicht verändern.
  56. public Node(int elem) {
  57.  
  58. }
  59.  
  60. // Rekursive Hilfsmethode für 'add' von 'Tree'.
  61. void add(int elem) {
  62.  
  63.  
  64.  
  65. }
  66.  
  67. // Rekursive Hilfsmethode für 'removeLeaves' von 'Tree'.
  68. // Hinweis: Der Rückgabewert (boolean) kann angeben,
  69. // ob ein Knoten ein Blattknoten ist und somit entfernt werden muss.
  70. boolean removeLeaves() {
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79. // TODO: Implementieren Sie die Methode.
  80. return false; //TODO: Diese Zeile löschen.
  81. }
  82.  
  83. @Override
  84. // Rekursive Hilfsmethode für 'toString' von 'Tree'.
  85. public String toString() {
  86.  
  87.  
  88.  
  89. // TODO: Implementieren Sie die Methode.
  90. return null; //TODO: Diese Zeile löschen.
  91. }
  92. }
  93.  
  94. class Tree {
  95. // Der Wurzelknoten des Baumes. Bitte nicht verändern, oder zusätzliche
  96. // Variablen hinzufügen.
  97. private Node root;
  98.  
  99. public boolean empty() {
  100. return false;
  101. }
  102.  
  103. // Fügt neue Elemente in den Baum ein.
  104. // z.B. Die Aufrufe add(5),add(2),add(7),add(6),add(8),add(1),add(1),add(3)
  105. // ergeben folgenden Baum:
  106. // 5
  107. // / \
  108. // 7 2
  109. // / \ / \
  110. // 8 6 3 1
  111. // \
  112. // 1
  113. public void add(int elem) {
  114.  
  115. }
  116.  
  117. // Diese Methode entfernt alle Blätterknoten des Baumes. Wird die Methode
  118. // auf den oben gezeigten Baum angewendet, dann entsteht folgender Baum:
  119. // 5
  120. // / \
  121. // 7 2
  122. // \
  123. // 1
  124. // Besteht der Baum nur aus dem Wurzelknoten, wird dieser gelöscht.
  125. public void removeLeaves(){
  126.  
  127. // TODO: Implementieren Sie die Methode
  128. }
  129.  
  130. // Retourniert alle Elemente des Baumes in aufsteigender Reihenfolge als
  131. // String.
  132. // z.B. der Baum enthält 1, 2, 3 and 4, dann ist das Ergebnis:
  133. // "[1,2,3,4]"
  134. // Für einen leeren Baum wird "[]" zurückgegeben.
  135. @Override
  136. public String toString() {
  137. // TODO: Implementieren Sie die Methode
  138.  
  139.  
  140. return ""; //TODO: Diese Zeile löschen.
  141. }
  142.  
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement