Vorschlag für eine kleine Änderung des einleitenden Absatzes:
Man muss verkettete Listen von Tabellen unterscheiden. Bei einer Tabelle (Array) sind gleichgrosse Elemente hintereinander in der Memory angeordnet und können durch einen „Index“ (= Element-Nummer) gezielt adressiert werden. Bei Bascom hat übrigens das erste Tabellenelement den Index „1“, bei GCC und anderen gilt hier der Index „0“ Beides hat was, aber darauf wollen wir hier nicht eingehen
Bei verketteten Listen kann sich jedes Element irgendwo im Speicher befinden, daher gibt es üblicherweise einen „Header“, der zumindest auf das das Anfangselement verweist. Das Anfangselement (und jedes weitere Element) verweisen dann auf den Speicherort des jeweils darauffolgenden Elements. Das Auffinden eines bestimmten Elements kann hier aber nur erfolgen, indem man der Verkettung vom ersten Element weg folgt, bis man das gesuchte gefunden hat. Wenn die Element umsortiert werden sollen, dann reicht es, die Verkettungs-Zeiger zu verändern, bei einer Tabelle muss man die gesamten Daten verschieben. Ebenso, wenn man einzelne Element entfernen oder einfügen will. Listen-Elemente können auch unterschiedlich lang sein, dann muss oder sollte jedes Element auch eine Längenangabe enthalten (Bei Strings reicht natürlich ev. auch der „NUL“ Terminator).
Ansonsten habe ich mich bei den grafischen Darstellungen gefragt, ob man bei den Listeneinträgen nicht noch andeuten sollte, dass da (außer den Verweisen auf die anderen Listenelemente) auch noch Daten drinstehen. So sieht das irgendwie nach Selbstzweck aus.
Ich sollte vielleicht dazusagen, dass ich mich vor 20 Jahren mal mit Pascal befasst habe, sonst aber hochgradig ahnungslos bin, was höhere Programmiersprachen betrifft. Die Pseudocode Beispiele habe ich deshalb nicht so ganz kapiert, wahrscheinlich auch wegen momentaner Denkfaulheit. Ansonsten für einen Dilettanten wie mich durchaus zu verstehen.
Lesezeichen