Algorithmen und Datenstrukturen in C: Elementare Datenstrukturen

Aus Wikibooks

Wechseln zu: Navigation, Suche

Elementare Datenstrukturen stellen die Grundlage für Algorithmen dar. In ihnen werden Daten abgespeichert.


Inhaltsverzeichnis

[Bearbeiten] Bestandteile

Datenstrukturen bestehen aus einer Menge von Daten, bei denen man jeweils den Schlüssel und den eigentlichen Datensatz unterscheidet. Über den Schlüssel kann man den jeweiligen Datensatz identifizieren. Außerdem dient er als Kriterium für Sortier- und Suchalgorithmen. Der eigentliche Datensatz kann hingegen beliebig groß und von einem beliebigen Typ sein. So wäre es zum Beispiel möglich Datensätze, von denen einer ein Bild und der andere eine Audiodatei enthält zu sortieren, da ja nicht nach dem eigentlichen Inhalt, sondern nach dem Schlüssel sortiert wird.


[Bearbeiten] Einige typische Operationen

Es gibt einige Operationen, die mit jeder Datenstruktur möglich sind. Die konkrete Umsetzung in einer Programmiersprache ist aber teilweise grundlegend anders, wodurch es zu sehr unterschiedlichen Laufzeiten kommt.

[Bearbeiten] I. Anfrageoperationen

SUCHE(D, s): Sucht den Schlüssel s in der Datenstruktur D, liefert einen Zeiger auf das entsprechende Element zurück, bzw. einen leeren Zeiger, wenn das Element nicht existiert.

MINIMUM(D): Liefert einen Zeiger auf das Element mit dem kleinsten Schlüssel in der Datenmenge D zurück.

MAXIMUM(D): Liefert einen Zeiger auf das Element mit dem größten Schlüssel in der Datenmenge D zurück.

SUCC(D, s): Liefert einen Zeiger auf das Element zurück, dessen Schlüssel der Nachfolger (Successor), also der nächstgrößere, von s ist.

PRED(D, s): Liefert einen Zeiger auf das Element zurück, dessen Schlüssel der Vorgänger(Predecessor), also der nächstkleinere, von s ist.

[Bearbeiten] II. Modifikationsoperationen

INSERT(D, x) Fügt das Element auf das der Zeiger x zeigt in die Datenstruktur D ein.

DELETE(D, x) Löscht das Element auf das der Zeiger x zeigt aus der Datenstruktur D.


[Bearbeiten] statische und dynamische Datenstrukturen

Der Unterschied zwischen statischen und dynamischen Datenstrukturen besteht darin, dass die Größe von dynamischen Datenstrukturen während der Laufzeit geändert werden kann. Das ist bei statischen Datenstrukturen nicht der Fall.

Alle in diesem Buch vorkommenen Datenstrukturen sind dynamisch mit Ausnahme des Feldes bzw. Arrays.



<< Inhaltsverzeichnis | Verkettete Listen >>

Persönliche Werkzeuge
Buch erstellen
  • Artikel hinzufügen
  • Hilfe zu Sammlungen