Informatik 1.6 — Datenstrukturen Grundlagen

Stacks & Queues

Stack — LIFO (Last In, First Out)

Wie ein Tellerstapel: oben drauf, oben weg.

  • push(x) — oben drauf — O(1)
  • pop() — oben weg — O(1)
  • peek() — oben anschauen — O(1)

Anwendungen:

  • Funktions-Aufruf-Stack (Call Stack)
  • Undo-History
  • Klammern-Prüfung in Compilern: "{[}]" — gültig?
  • DFS (Depth-First Search) in Graphen
// JS — Array als Stack
const stack = [];
stack.push(1);   // [1]
stack.push(2);   // [1, 2]
stack.pop();     // 2 → [1]

Queue — FIFO (First In, First Out)

Wie eine Warteschlange: hinten ankommen, vorn dran.

  • enqueue(x) — hinten anfügen — O(1)
  • dequeue() — vorn raus — O(1) (mit Linked List oder Ring-Buffer)

Anwendungen:

  • Task-Queues (Jobs nacheinander)
  • Drucker-Queue
  • BFS (Breadth-First Search)
  • Event-Schleife in Browser/Node

Priority Queue / Heap

Erweiterung: Element mit höchster (oder niedrigster) Priorität raus, nicht das älteste.

  • insert(x) — O(log n)
  • extractMin/Max() — O(log n)

Anwendungen: Dijkstra (kürzeste Wege), Job-Scheduler, Heap-Sort.

Zurück zu Informatik