# Datenstrukturen: Array, Liste, Stack und Queue

> Eine Datenstruktur legt fest, wie mehrere Daten im Speicher organisiert und zugegriffen werden. Das Array bietet schnellen Zugriff über einen Index, die verkettete Liste erlaubt einfaches Einfügen und Löschen. Stack (LIFO) und Queue (FIFO) unterscheiden sich darin, in welcher Reihenfolge Elemente wieder entnommen werden. Die richtige Wahl hängt davon ab, welche Operationen häufig gebraucht werden.

**Autor:** Mr. Benjamin · **Beruf:** IT-Grundlagen
**Veröffentlicht:** 2026-07-25 · **Aktualisiert:** 2026-07-25
**Quelle:** https://yellowbluetech.de/blog/datenstrukturen-grundlagen

---

Eine einzelne Zahl in einer [Variablen](/blog/variablen-und-datentypen) zu speichern ist einfach. Aber wie speichert man tausend Zahlen, eine Warteschlange oder die Rückgängig-Funktion eines Editors? Dafür gibt es Datenstrukturen – und welche man wählt, entscheidet oft über die Geschwindigkeit des ganzen Programms.

## Was ist eine Datenstruktur?

Eine Datenstruktur bestimmt, **wie mehrere Werte zusammen organisiert** werden und **wie man auf sie zugreift**.

> **Merksatz**
>
> Es gibt keine „beste" Datenstruktur. Jede ist auf bestimmte Operationen optimiert und bei anderen langsam. Die Wahl richtet sich danach, **was du am häufigsten tust**: nach Position zugreifen, vorne einfügen, hinten anhängen, durchsuchen?

## Das Array

Ein Array speichert Elemente **fortlaufend** und spricht sie über einen **Index** an – bei den meisten Sprachen beginnend bei 0.

```text
index:   0      1      2      3
wert:   "Ada"  "Bob"  "Cara" "Dan"
```

Der Zugriff auf `array[2]` ist sofort möglich. Der Nachteil: Die Größe steht meist von Anfang an fest, und das Einfügen in der Mitte ist teuer, weil alle nachfolgenden Elemente verschoben werden müssen.

## Die verkettete Liste

Bei einer verketteten Liste kennt **jedes Element seinen Nachfolger**. Die Elemente liegen nicht am Stück im Speicher.

```text
["Ada"| →] → ["Bob"| →] → ["Cara"| →] → [null]
```

Dadurch lässt sich vorne oder in der Mitte **leicht einfügen und löschen** – man biegt nur einen Verweis um. Der Preis: Es gibt keinen direkten Zugriff über einen Index; man muss von vorne durchhangeln.

## Stack und Queue

Diese beiden unterscheiden sich allein in der **Entnahme-Reihenfolge**:

| Struktur | Prinzip | Bild | Einsatz |
| --- | --- | --- | --- |
| **Stack** | **LIFO** – last in, first out | Stapel Teller | Rückgängig-Funktion, Funktionsaufrufe |
| **Queue** | **FIFO** – first in, first out | Warteschlange | Druckaufträge, Nachrichtenpuffer |

> **Prüfungstipp**
>
> Merke dir das Gegensatzpaar mit einem Bild: Beim **Stack** nimmst du den Teller oben ab, den du zuletzt hingelegt hast – **LIFO**. Bei der **Queue** ist dran, wer zuerst kam, wie an der Kasse – **FIFO**. Die typische Aufgabe nennt ein Szenario (Undo-Funktion, Warteschlange am Drucker) und fragt nach der passenden Struktur.

## Wie wähle ich richtig?

> **Hinweis**
>
> Frag dich, welche Operation **am häufigsten** vorkommt. Brauchst du oft wahlfreien Zugriff über eine Position, nimm ein **Array**. Fügst du ständig vorne oder mittendrin ein und löschst wieder, ist eine **verkettete Liste** besser. Geht es um eine feste Reihenfolge der Abarbeitung, entscheidet **Stack oder Queue** je nachdem, ob das Zuletzt-Hinzugefügte oder das Zuerst-Hinzugefügte zuerst dran ist. In der Praxis nehmen dir moderne Sprachen die Grundtypen als fertige Bibliotheksklassen ab – wissen musst du trotzdem, welche wann passt.

## Selbstkontrolle

**Frage:** Ein Texteditor soll eine Rückgängig-Funktion bekommen: Der zuletzt gemachte Schritt wird als Erstes zurückgenommen. Welche Datenstruktur passt?

- [x] Stack (LIFO)
- [ ] Queue (FIFO)
- [ ] Array mit festem Index
- [ ] Verkettete Liste

**Erklärung:** Beim Rückgängigmachen wird immer die zuletzt ausgeführte Aktion zuerst zurückgenommen – das ist das LIFO-Prinzip, also ein Stack. Eine Queue arbeitet nach FIFO und wäre für eine Warteschlange richtig, nicht für Undo.

## Häufige Fragen

### Was ist der Unterschied zwischen Array und Liste in der Praxis?

Ein Array liegt am Stück im Speicher und bietet blitzschnellen Zugriff über den Index, ist aber unflexibel bei Größenänderungen. Eine verkettete Liste wächst und schrumpft mühelos und erlaubt günstiges Einfügen, kostet dafür bei jedem Zugriff über eine Position ein Durchhangeln. Viele Sprachen bieten zusätzlich dynamische Arrays, die intern ein Array nutzen, aber automatisch vergrößern.

### Wo wird ein Stack im Betriebssystem genutzt?

Beim Aufruf von Funktionen. Jeder Aufruf legt seine lokalen Daten auf den sogenannten Aufruf-Stack, und beim Zurückkehren wird der oberste Eintrag wieder entfernt – genau das LIFO-Prinzip. Läuft eine [Rekursion](/blog/rekursion-erklaert) zu tief, läuft dieser Stack über, was zum bekannten Stack Overflow führt.

### Was ist ein assoziatives Array oder eine Map?

Eine Struktur, die nicht über eine Zahl als Position zugreift, sondern über einen frei wählbaren Schlüssel, etwa einen Namen. Man spricht auch von Hashtabelle, Dictionary oder Map. Sie eignet sich, wenn du Werte schnell über einen eindeutigen Schlüssel finden willst, zum Beispiel eine Telefonnummer über den Namen.

### Muss ich Datenstrukturen selbst programmieren können?

Für das Verständnis ja, für den Alltag meist nein. In der Prüfung sollst du erklären können, wie die Grundtypen funktionieren und welche wann passt. Im echten Projekt greifst du fast immer auf die geprüften Implementierungen der Standardbibliothek zurück, statt eine verkettete Liste selbst zu bauen.

**Weiterlesen:** [Sortier- und Suchalgorithmen verstehen](/blog/sortier-suchalgorithmen) · [Programmablaufplan (PAP) und Struktogramm](/blog/algorithmus-struktogramm-pap) · [OOP-Grundlagen: Klasse, Objekt, Prinzipien](/blog/oop-grundlagen)

## Das Wichtigste in Kürze

- Eine **Datenstruktur** legt Organisation und Zugriff mehrerer Werte fest.
- **Array**: schneller Zugriff per Index, aber starr und teuer beim Einfügen.
- **Verkettete Liste**: leicht einfügen und löschen, aber kein direkter Index-Zugriff.
- **Stack = LIFO** (Undo, Funktionsaufrufe), **Queue = FIFO** (Warteschlangen).
- Die Wahl richtet sich nach der **häufigsten Operation**.
