faecher:informatik:oberstufe:adt:baeume:javabaum:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:adt:baeume:javabaum:start [07.02.2022 16:47] – [Ein Implementation in Java] sbelfaecher:informatik:oberstufe:adt:baeume:javabaum:start [01.05.2024 18:31] (aktuell) – [Eine Implementation in Java] Frank Schiebel
Zeile 8: Zeile 8:
 Die **Blätter** des Baums zeichnen sich dadurch aus, dass ''left'' und ''right'' auf ''null'' zeigen, also nicht auf weitere "Unterbäume" verweisen. Die **Blätter** des Baums zeichnen sich dadurch aus, dass ''left'' und ''right'' auf ''null'' zeigen, also nicht auf weitere "Unterbäume" verweisen.
  
-===== Ein Implementation in Java =====+===== Eine Implementation in Java =====
  
-Mit diesen Überlegungen kann man sich die folgende Implementation in Java ansehen. Es gibt nur eine Klasse ''Binaerbaum'' die eigentlich Knotenobjekte darstellt. Der Baum selbst wird repräsentiert durch das Knotenobjekt des Wurzelknotens. +Mit diesen Überlegungen kann man sich die folgende Implementation in Java ansehen: https://codeberg.org/qg-info-unterricht/binaerbaum-einstieg 
 + 
 +Es gibt nur eine Klasse ''Binaerbaum'' die eigentlich Knotenobjekte darstellt. Der Baum selbst wird repräsentiert durch das Knotenobjekt des Wurzelknotens. 
  
 Durch [[https://de.wikipedia.org/wiki/%C3%9Cberladen|überladen]] des Konstruktors wird Polymorphie des Konstruktors erzwungen, man kann also verschiedene Knoten erzeugen:  Durch [[https://de.wikipedia.org/wiki/%C3%9Cberladen|überladen]] des Konstruktors wird Polymorphie des Konstruktors erzwungen, man kann also verschiedene Knoten erzeugen: 
  
   * Innere Knoten: Erhalten als Argumente einen Datenwert und die Wurzelknoten der Unterbäume ''links'' und ''rechts''   * Innere Knoten: Erhalten als Argumente einen Datenwert und die Wurzelknoten der Unterbäume ''links'' und ''rechts''
-  * Blattknoten: Erhalten einen (oder keinen) Datenwert.  ''links'' und ''rechts'' wird auf ''null'' gesetzt. +  * Blattknoten: Erhalten einen (oder keinen) Datenwert.  ''links'' und ''rechts'' wird auf ''null'' gesetzt. 
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A1) === 
 + 
 +Untersuche die Klasse ''Binaerbaum'' und ihre Methoden im Projekt. Erzeuge mit Hilfe der zur Verfügung stehenden Methoden den in der Abbildung gezeigten Baum mit Integer-Werten: 
 + 
 +  * Top-Down, beginnend beim Wurzelknoten 
 +  * Bottom-Up, beginnend bei den Blättern 
 + 
 +{{ :faecher:informatik:oberstufe:adt:baeume:javabaum:aa1.drawio.png |}} 
 + 
 +  * Verifiziere jeweils durch die Inspizieren Funktion von BlueJ, dass die Baumstruktur wie gefordert stimmt, indem due beim Wurzelknoten beginnend den Pfaden folgst. 
 +  * Teste die Methode ''isBlatt'' und verifiziere die Funktionsweise an mehreren Knoten. 
 + 
 +++++ Hilfestellung | 
 +{{ :faecher:informatik:oberstufe:adt:baeume:javabaum:2024-05-01_20-03.png?nolink |}} 
 +++++ 
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A2) ===
  
 +Implementiere die Methoden ''baueBaumTopDown'' und ''baueBaumBottomUp''  in der Klasse ''Zahlenbaum'', so dass der dargestellt Baum aus Integerwerten entsteht.
  
 +++++ Lösungsvorschlag |
 +{{ :faecher:informatik:oberstufe:adt:baeume:javabaum:2024-05-01_20-31.png?nolink |}}
 +++++
  • faecher/informatik/oberstufe/adt/baeume/javabaum/start.1644252421.txt.gz
  • Zuletzt geändert: 07.02.2022 16:47
  • von sbel