|
|
|||
Folge 15 - Abitur NRW 2007/08Die Klasse List |
|||
| Zitat aus dem "Werkzeugkasten", der im Juli 2006 offiziell herausgegeben wurde:
Kommentar:Diese Definition ist zwar auch nicht viel besser als die anderen, aber zumindest haben wir jetzt eine verbindliche Definition. Interessant sind die Methoden isBefore() und isBehind(). So ganz recht habe ich den Sinn dieser beiden Methoden nicht verstanden. Wenn man die Liste richtig einsetzt, sollte sich der Listenzeiger eigentlich nicht vor dem ersten oder hinter dem letzten Element befinden, sondern höchstens auf dem ersten bzw. auf dem letzten Element. Vor allem stört mich die folgende Formulierung: "...wenn der Positionszeiger... vor der leeren Liste steht..." Wie bitte soll denn der Positionszeiger vor der leeren Liste stehen. Entweder existiert die Liste noch gar nicht, weil der Konstruktor nicht aufgerufen wurde, dann existiert auch der Positionszeiger noch nicht, der ja ein Attribut der Klasse Liste ist. Oder die Liste existiert und der Positionszeiger zeigt entweder auf null oder auf eines der Elemente. Zumindest habe ich das bei Listen immer so verstanden, aber natürlich lasse ich mich gern eines Besseren belehren: E-Mail an info@u-helmich.de! Eine zweite Sache, die mir nicht ganz recht einleuchten will: Wieso befindet sich der Positionszeiger hinter der Liste, wenn toFirst() aufgerufen wurde und die Liste leer ist? Sollte er sich in diesem Fall nicht vor dem ersten Element befinden? Das Gleiche gilt natürlich auch für toLast(). Offensichtlich haben die Autoren dieser Klassendefinition sich den Datentyp Liste als einen Array vorgestellt, bei dem sich vor dem eigentlichen ersten Element noch ein leeres Element befindet, desgleichen hinter dem eigentlichen letzten Element noch ein leeres allerletztes Element. Das vereinfacht natürlich einige Operationen, weil man keine Angst mehr vor unerlaubten Zugriffen auf nicht vorhandene Array-Elemente haben muss. Aber logisch ist das alles nicht. Wenn ein Zeiger auf das letzte Element zeigt und dann nach rechts gerückt wird, muss er doch auf null zeigen und nicht auf ein doch noch vorhandenes allerletztes Element. Na ja, ich kann's nicht mehr ändern. Die nächsten Methoden sind so ganz O.K, aber bei update() muss man wieder nachdenken. Ach so, diese Methode ersetzt ganz einfach ein vorhandenes Listenelement. Warum man sie dann nicht einfach replace() genannt hat, ist mir natürlich wieder mal ein Rätsel. |
|||
zurück zu Folge 15 - Abstrakte Datentypen |
|||
|
Diese HTML-Seite wurde erstellt von Ulrich Helmich am 19. August 2006. |
|||