Einführung: |
Verschiedene Suchbaumarten
sollen hierarchisiert aus einer Basisklasse BinBaum abgeleitet werden.
Da viele der benötigten Methoden unabhängig vom Inhalt
sind, soll von BinBaum zuerst eine Klasse SuchBaum und von dieser
die Klassen IntSuchbaum, StringSuchbaum, PointSuchbaum und AdressSuchbaum
abgeleitet werden. Die Hierarchie verdeutlicht dieses Klassendiagramm: |
Aufgabe: |
a) Erzeugen Sie dieses
Klassendiagramm mittels ArgoUML
selbst. Ergänzen Sie die Klassen PointSuchbaum und AdressSuchbaum,
markieren Sie abstrakte Methoden farbig. Welche Attribute und Methoden
sollten private, welche protected gekapselt werden?
|
b) Die Implementation soll in Delphi erfolgen. Ergänzen Sie hierzu die Unit binbaum.pas, die Sie hier als Datei binbaum_rumpf.txt erhalten. |
c) Ergänzen Sie auch die Methoden DeleteIt und Insert in der Unit suchbaum.pas, die Sie hier als Datei suchbaum_rumpf.txt erhalten. Bei Bedarf orientieren Sie sich an den Kommentaren dort, die den Grobalgorithmus repräsentieren. |
d) Die übrigen Units des Delphi-Projektes
BaumTester finden Sie hier.
Analysieren Sie die Units genau. Kompilieren Sie das Projekt zuerst
mit den von Ihnen ergänzten Units Binbaum und Suchbaum,
beseitigen Sie die Fehler. Beachten Sie auch die Informationen (Auszüge
aus der Delphi-Hilfe): |
e) Kontrollieren Sie nun die komplette Funktionalität Ihres Projektes. Vergleichen Sie mit dem fertigen Programm BaumTester, das Sie hier laden können. |
f) Implementieren Sie im Projekt zusätzlich die noch fehlenden Funktionalitäten (Import aus Datei, Export in Datei nach Pre-, In-, PostOrder-Traversierung, Höhen- und Gewichtsbalance jedes Knotens, mittlere Weglänge ab der Wurzel, Anzahl der Knoten im Baum). |
g) Das Knotenlöschen (Option Bearbeiten / Knoten / Löschen ; kurz [F3]) könnte komfortabler werden: Alle verfügbaren Knoten werden sortiert in einem Auswahlfenster angeboten (keine Mehrfachauswahl!). Implementieren Sie dies, nachdem Sie einen Grobalgorithmus hierzu formulierten. |
Lösung (aber
zuerst selbst bearbeiten!) |
Literatur: Wichtiger Hinweis: Falls Inhalte von Verweisen (Links) nicht angezeigt werden, könnte das an einer falschen Konfigurierung des Zielservers liegen. Versuchen Sie dann mit Rechtsklick und Öffnen im neuen Fenster bzw. Register dort in der Adresszeile zu Beginn das angegebene Protokoll (https://) in die unsichere Variante (http://) zu ändern und den Link so aufzurufen. |
Weitere Materialien: |
|