0 Daumen
499 Aufrufe

Folgendes: 

Die Elemente einer Liste werden in einem Feld gespeichert. Bei n 
vorhandenen Elementen seien jeweils die ersten n Plätze des Feldes genutzt. 
Nennen Sie die Nachteile dieser Implementierung. 
------------------------------------------------------------------ 

Welche nachteile kann das jetzt haben?

Avatar von

2 Antworten

0 Daumen
 
Beste Antwort

Zum Beispiel beim Einfügen (womöglich vor dem ersten Element)

müssten alle anderen 1 nach unten geschoben werden.

Oder beim Löschen müssten alle wieder hoch gezogen

werden.

Bei einer Implemnetation mit Zeigern hätte man diese

Nachteile nicht.

Avatar von

Hallo mathef,

ich verweise auf den ersten Beitrag unten unter " ähnliche Fragen "
und meine Antworten.

Das array of Pointer ( Zeigerfeld ) hatte sich als Datenstruktur bei mir sehr bewährt.

mfg Georg

Aber die "Elemente einer Liste werden in einem Feld gespeichert". Insbesondere  werden keine Zeiger auf Elemente in einem Feld gespeichert, sondern die Elemente selbst.

0 Daumen

Hallo!

Die Elemente einer Liste werden in einem Feld gespeichert. Bei n vorhandenen Elementen seien jeweils die ersten n Plätze des Feldes genutzt. Nennen Sie die Nachteile dieser Implementierung.

Zwei mögliche Nachteile dieser Implementierung wären zum Beispiel:

Bei üblichen Implementierungen des Datentyps "array" (Feld) liegt die Feldgröße bereits zur Compile-Zeit fest, während die Länge von Listen oft erst zur Laufzeit bestimmt wird und sich auch während der Laufzeit noch ändern können soll. Listenrealisationen über Felder bleiben daher auf eine feste Länge beschränkt, sind also nur eingeschränkt dynamisch, da beliebig lange Listen nicht möglich sind. Umgekehrt wird für kurze Listen oft eine unnötig große Datenstruktur vorgehalten.

Da der Anfang des Feldes genutzt werden soll, muss nach Löschoperationen innerhalb der Liste ein Teil des Feldinhalts verschoben werden, damit keine Lücken entstehen. Ähnlicher Aufwand ist beim Einfügen nötig.

Sicher wird es noch weitere Nachteile geben.

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community