s n h m r u
i

Fachkonzept: Rekursive Datenstrukturen

Rekursive Datenstrukturen

In vielen Fällen ist es wichtig, Beziehungen zwischen einzelnen Daten direkt innerhalb der Daten abbilden zu können. Hierfür kommen rekursive Datenstrukturen zum Einsatz.

Rekursive Datenstrukturen sind Datenstrukturen, die in ihrer Definition auf sich selbst verweisen. Damit ermöglichen sie es, Beziehungen zwischen einzelnen Daten darzustellen.

Beispiel: Listenstruktur

Betrachtet man beispielsweise eine Listenstruktur, lässt sich diese wie folgt beschreiben:

  • Eine Liste ist entweder:
    • eine leere Liste
    • oder eine nichtleere Liste
  • Eine nichtleere Liste ist definiert durch:
    • ein erstes Element
    • und eine Liste als Rest
Eine mögliche Umsetzung in Racket sieht wie folgt aus:
(define-record leereliste
  make-leereliste
  leereliste?)

(define-record nichtleereliste
  make-nichtleereliste
  (nichtleereliste-element any)
  (nichtleereliste-nachfolgewert (mixed leereliste nichtleereliste)))

Die leere Liste stellt dabei den Basisfall der rekursiven Datenstruktur dar. Ein Basisfall ist immer dann nötig, wenn es kein Element der rekursiven Datenstruktur gibt, auf welches verwiesen werden kann (zum Beispiel beim letzten Element einer Liste). Um darzustellen, dass eine Liste entweder leer oder nichtleer ist, wird der Operator mixed genutzt, welcher beide Möglichkeiten als valide Optionen zusammenführt.

Suche

v
100.137.4.2.1.4 Fachkonzept: Rekursive Datenstrukturen
Kopieren durch Anklicken

Rückmeldung geben