Verkettete Datenstrukturen ◦ Zusammenfassung ◦ ?

Die Binärsuche in einem Datenfeld basiert auf der direkten Suche. Als direkte Suche bezeichnet man den direkten Zugriff auf die Elemente über einen Index. Bei einem Datenfeld ist dieser Zugriff sehr schnell, weil ein Computer aus dem Index direkt die Adresse der Speicherstelle berechnen kann, an der das gesuchte Element gespeichert wurde. Als Adressen bezeichnet man die Nummern, nach denen alle Speicherzellen des Arbeitsspeichers eines Rechners durchnummeriert sind (Bild a).

Die Berechnung der Speicheradresse aus dem Index ist einfach, weil die Elemente eines Datenfeldes alle dieselbe Grösse haben und in einem zusammenhängenden Speicherbereich in geordneter Folge abgelegt sind. Hat das erste Element den Index 1, so berechnet sich die Adresse eines Elementes i nach der folgenden Formel (Bild b):

> Adresse_von_i = Adresse_von_1 + (i - 1)*Grösse_eines_Elementes

Der Zugriff auf ein Element eines Datenfeldes ist damit zwar schnell. Die Verwaltung eines dynamischen Datenfelds, dessen Grösse sich laufend ändert, ist aber aufwändig. Soll beispielsweise ein Element eingefügt werden, so muss man zuerst den Platz dafür schaffen. Um ein Datenfeld sortiert zu halten, müssen bei jeder Einfügeoperation im Schnitt die Hälfte der Elemente, im ungünstigsten Fall sogar alle Elemente, um eine Position verschoben werden. Dasselbe gilt für jede Löschoperation. Beim Einfügen kann es sogar passieren, dass der aktuelle Speicherbereich gar nicht gross genug ist, um alle Elemente aufzunehmen. Das ganze Datenfeld muss dann in einen grösseren zusammenhängenden Bereich verschoben werden.

Effizienter als in Datenfeldern lassen sich Einfüge- und Löschoperationen mit verkettete Strukturen realisieren. Die Elemente von verketteten Strukturen halten neben dem eigentlichen Inhalt Verweise auf ihre Nachfolger und eventuell auch auf die Vorgänger. Ein Verweis oder Zeiger auf ein Element ist im wesentlichen die Angabe der Adresse der Speicherstelle, an der das Element gespeichert ist. Durch die Verkettung ist es nicht mehr nötig, dass die Elemente einen zusammenhängenden Speicherbereich belegen (Bild c).

Die Themen verkettete Liste und Binärbaum betrachten zwei verkettete Datenstrukturen eingehend.

©abo