Zum Hauptinhalt springen

Woche 12: Exceptions & Binäre Suchbäume

Nach dieser Woche können Sie …

  • eine Exception abfangen
  • Exceptions werfen
  • neue Operationen für binäre Suchbäume implementieren
  • erklären, wann die Suche in einem binären Suchbaum schnell ist

Beim Programmieren stoßen wir öfter auf Situationen, wo wir mit fehlerhaften Eingaben umgehen können müssen. Bisher stürzt in vielen Fällen unser Programm einfach ab, z. B. wenn wir Double.parseDouble("zwei") aufrufen. Wie wir solche Eingabefehler behandeln können, schauen wir uns diese Woche an. Außerdem gucken wir uns an, wie wir selbst signalisieren können, dass z. B. eine Methode mit ungültigen Parametern aufgerufen worden ist, wie z. B. List.get(-1).

Ausgestattet mit dem Wissen zu Fehlerbehandlung und Typhierarchien schauen wir uns dann noch eine weitere Datenstruktur an, die Daten automatisch sortiert abspeichert. Dadurch ist die Suchgeschwindigkeit im Durchschnitt besser ist als bei Arrays. Beim Thema Suchbäume werden uns auch Rekursion und Referenzen wieder begegnen.

Literatur

Falls Sie die Themen dieser Woche nochmal in der Literatur nachlesen wollen:

Vorlesung

Exceptions & asserts

Freiwillige Zusatzaufgabe

Suchen Sie den Code zur Listen-Übungsaufgabe raus. Schreiben Sie die Methode get(int) so um, dass sie eine IndexOutOfBoundsException wirft, wenn der übergebene Index ungültig ist.

Binäre Suchbäume

Freiwillige Zusatzaufgaben

Schreiben Sie eine Methode, die die zweitgrößte Zahl im Baum zurückgibt. Achten Sie auf Sonderfälle („besondere“ Baumformen).

zum Knobeln:

  • Implementieren Sie eine iterative Variante von toString. (Tipp: Eine Liste/Stack ist wahrscheinlich nützlich.)
  • Ergänzen Sie die Baum-Klasse um eine Methode, die den Baum „in Baumform“ ausgeben kann, also z. B. so:
    .......5.......
    ...3.......7...
    .1...4...6...8.
    0.2...........9