Zum Inhalt springen

Informatik · Klasse 11–12 · aktualisiert

Abstrakter Datentyp: ADT einfach erklärt

Du lernst, was ein abstrakter Datentyp festlegt, wie sich Signatur und Semantik unterscheiden und wie du einen Stack spezifizierst.

0 von 9 Aufgaben gelöst

Abstrakter Datentyp: ADT einfach erklärt

Kurz gesagt

Ein abstrakter Datentyp (ADT) legt fest, welche Operationen es gibt und was sie bewirken; wie sie im Speicher umgesetzt werden, lässt er offen. Die Signatur nennt Namen und Typen, die Semantik die Bedeutung. Ein Stack lässt sich so mit push, pop und top beschreiben.

Stell dir den „Zurück“-Knopf einer App vor: Das Zuletzt-Geöffnete käme zuerst wieder dran. Genau so arbeitet ein Stack. Du musst dafür nicht wissen, wie der Speicher dahinter aufgebaut ist. Diese Trennung zwischen „Was kann ich damit tun?“ und „Wie ist es gebaut?“ ist die Idee des abstrakten Datentyps.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Ein abstrakter Datentyp, kurz ADT, fasst Daten mit der Menge aller zulässigen Operationen zusammen, über die man auf diese Daten zugreift. Der Zugriff läuft also nur über diese Operationen. Deshalb sind die Daten nach außen gekapselt.

Ein ADT beschreibt, was die Operationen tun. Wie sie es tun, lässt er offen. Die Umsetzung im Speicher heißt Implementierung. Wer den ADT benutzt, muss die innere Umsetzung nicht kennen, denn der ADT verwaltet seine Daten im Speicher selbst.

Dazu gehören angestrebte Eigenschaften. Bei der Kapselung kann der Anwender in die interne Struktur der Daten nicht eingreifen. Dadurch ist die Gefahr, Daten ungewollt zu löschen oder zu verändern, deutlich herabgesetzt. Bei der Modularität können viele Verbesserungen nachträglich über den ADT übernommen werden, ohne dass sich die Programme ändern, die ihn benutzen.

Definition

Abstrakter Datentyp (ADT)

Ein ADT besteht aus Daten und der Festlegung aller zulässigen Operationen auf diese Daten. Er legt fest, was die Operationen tun, nicht aber, wie sie umgesetzt werden.

Merke: Ein ADT legt das Was fest. Das Wie (die Implementierung) bleibt offen.

Teste dich

LeichtWas lässt ein ADT offen?

Alles auf einen Blick

Abstrakter Datentyp

  • ADT

    Daten plus alle zulässigen Operationen, Zugriff nur über diese Operationen

  • Offen

    Wie die Operationen umgesetzt werden, legt der ADT nicht fest

  • Signatur und Semantik

    Namen und Typen auf der einen, Bedeutung auf der anderen Seite

  • Stack

    Last in, first out mit emptyStack, isStackEmpty, push, pop und top

  • Leerer Stack

    pop und top ergeben ERROR

  • Implementierung

    Liste und Feld bieten dieselben Operationen, setzen sie aber verschieden um

Musteraufgabe · Schritt für Schritt

Einen Stack Schritt für Schritt durchspielen (ausgedachtes Beispiel)

  1. 1Annahme: Die Elemente sind Zahlen. Wir starten mit s0 = emptyStack(). Es gilt isStackEmpty(s0) = TRUE.
  2. 2s1 = push(4, s0): Oben liegt 4. Wegen isStackEmpty(push(x,s)) = FALSE ist s1 nicht leer.
  3. 3s2 = push(9, s1): Oben liegt 9, darunter 4.
  4. 4top(s2) = 9, denn top(push(x,s)) = x.
  5. 5pop(s2) = s1, denn pop(push(x,s)) = s. Oben liegt wieder 4.
  6. 6pop(s1) = s0, denn s1 ist push(4, s0). Der Stack ist wieder leer.
  7. 7pop(s0) = ERROR, denn pop(emptyStack()) = ERROR.

Fehler finden

Prüfe die Aussagen zu Signatur und Semantik In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Ein ADT lässt die der Operationen offen. Name, Parameter und bei stark typisierten Sprachen auch der Ergebnistyp einer Operation bilden ihre . Nach der Spezifikation ergibt pop(emptyStack()) den Wert .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Abstrakter Datentyp

LeichtNach welchem Prinzip arbeitet ein Stack?
MittelWelche Signatur hat push beim Stack?
SchwerEin Stack ist mit einem Feld umgesetzt. len ist gleich size, und push wird aufgerufen. Was geschieht, wenn genug Speicher frei ist?

Weiterlesen in Informatik