Projekt - Indexliste
-
Bilder kannst du nicht als thumbnails einbinden, ausgenommen Buchcover. Begründung falls du sie wissen willst findest du in der FAQ der Forentechnik.
Ich würde eine große Oberklasse machen, welche die einfach verkettete Liste und die Indexlisten enthält:
-
Du brauchst für die verkettete Liste zwei Klassen. Theoretisch könntest du auch mit einer auskommen, aber mit 2 finde ich schöner und übersichtlicher:
-
Erste Klasse: Ein Datenelement.
-
Enthält ein Datum und einen Zeiger auf das nachfolgende Datenelement (oder auf 0, falls dieses nicht existiert).
-
Stellt keine öffentlichen Methoden bereit sondern darf nur von der zweiten Klasse benutzt werden.
-
Kann als Unterklasse der zweiten Klasse implementiert werden.
-
Zweite Klasse: Die Listenklasse an sich.
-
Enthält einen Zeiger auf das erste Element (oder auf 0). Für praktische Zwecke ist es auch günstig einen Zeiger auf das letzte Element zu haben, dann gehen ein paar Sachen besser und flotter.
-
Diese Klasse stellt das Interface zur Verfügung und kümmert sich um die Organisation der Datenelemente. Hierhin kommen Methoden zum Anhängen und Entfernen.
-
Ein Destruktor, Kopierkonstruktor und Zuweisungsoperator werden auch notwendig sein.
-
Eine Iteratorklasse wäre nicht verkehrt.
-
Zu den Indexlisten: Nimm einfach deine einfach verkettete Liste als Typ. Vorausgesetzt natürlich, dass Durchiterieren ausreichend zum Zugriff ist.
-
Die Oberklasse enthält dann wiederum Methoden zum Einfügen und Entfernen. Diese rufen die Methode der verketteten Liste auf und aktualisieren den Index.
-
Zugriff erfolgt, indem Iteratoren aus den Indexlisten zurückgegeben werden
Ich glaube, so habe ich alle Anforderungen abgedeckt. Hab ich was vergessen?
-
-
..................................
-
Ein Zeiger gilt in Informatikersprache als Attribut.
Bei deinem Klassendiagramm wundert mich folgendes:
1. Die Zeigertypen. Die sind nicht vom Typ double, sondern vom Typ Zeiger auf den Datentyp (meinetwegen double. Aber dann Zeiger auf double).
2. Der Zeiger auf NULL. Du brauchst keinen Zeiger auf NULL in dem Objekt speichern. Wenn dein Zeiger auf das nächste Element den Wert NULL hat, dann gibt es kein nächste Element.
3. Die Basisklasse ist etwas komisch bezeichnet. Mit Basisklasse meint man im allgemeinen etwas anderes. Die Basisklasse sollte auch Methoden zum Verwalten und Zugriff auf die Elemente anbieten. Diese benutzen dann intern die Methoden der verketteten Liste (und sorgen zudem auch noch für Korrektheit der Indexlisten).
-
...........................
-
............................
-
Nach den Datenattributen!? Warum ist eine alphabetische Sortierung nicht sinnvoll?
-
,,,,,,,,,,,,,,,,,,,,,,,,,,
-
std::sort bzw std::stable_sort (Am besten siehst du im Internet nach, worin der Unterschied liegt), bzw zum Vergleichen zweier strings std::lessstd::string (alphabetisch) bzw std::greaterstd::string (anti-alphabetisch [Ist das überhaupt ein Wort? Wie nennt man das richtig?])

-
.........................
-
.............................