Home > Informatik > Stufe Q1 > ADTs

14.1 Datentypen und Datenstrukturen

Allgemeines - Abstrakte Datentypen - Stack - Queue - Dictionary - List - ADTs im Abitur - Axiome

Allgemeines

Datentypen und Datenstrukturen - was ist was?

Eine kurze Internet-Recherche zeigt sofort, dass es so gut wie keinen Konsens über die Verwendung der Begriffe "Datentyp" und "Datenstruktur" gibt. Mal werden Arrays und Strings zu den Datentypen gerechnet, mal zu den Datenstrukturen, gelegentlich auch zu den "strukturierten Datentypen".

Da das Internet aber oft nicht sehr zuverlässig ist, sollte man auf jeden Fall auch eine Recherche in Fachbüchern durchführen. Leider herrscht auch hier ein ähnliches Durcheinander.

Datentypen

Schlagen wir mal in dem "Duden Abitur Informatik" nach, also einer Quelle, die ja doch als ziemlich zuverlässig gilt. Dort erfahren wir dann Folgendes:

Der Begriff Datentyp beschreibt den Wertebereich von Daten, in dem ganz bestimmte Operationen gelten, die man auf alle Daten dieses Typs anwenden kann.

Eine Definition, mit der man nicht unbedingt viel anfangen kann. Etwas konkreter wird der Duden dann in der Auflistung der Datentypen: integer , real , boolean und char; in Java entspricht das den Datentypen int, double, boolean und char. Jetzt wird auch klar, was mit diesen "ganz bestimmten Operationen" gemeint ist. Auf Variablen vom Typ int kann man beispielsweise Operationen wie + (Addition), - (Subtraktion), / (Division), * (Multiplikation) und % (Modulo, Rest der ganzzahligen Division) anwenden.

In der deutschen Wikipedia werden diese Einheiten als "elementare Datentypen" bezeichnet, in manchen Büchern spricht man von "primitiven Datentypen". Ich denke, mit diesen Bezeichnungen kann man ebenfalls ganz gut arbeiten.

Datenstrukturen

Kommen wir wieder zurück zum Duden Informatik.

Der Begriff Datenstruktur beschreibt die Zusammenfassung gleicher oder unterschiedlicher Datentypen nach bestimmten Konstruktionsprinzipien.

Der Duden wird dann noch etwas genauer. Er unterscheidet nämlich zwischen einfachen Datenstrukturen und abstrakten Datenstrukturen, wobei wir schon beim Thema dieser Folge 14 wären.

Einfache Datenstrukturen sind in den meisten Programmiersprachen quasi direkt implementiert. Beispiele hierfür sind Felder oder Arrays, die aus vielen gleichen Datentypen bestehen und wo auf jedes Element direkt zugegriffen werden kann. In der Sprache Pascal gibt es dann noch sogenannte Verbunde oder Records, in denen verschiedene Datentypen gebündelt werden können wie zum Beispiel Name, Vorname (String), Alter (integer), Gehalt (real) eines Angestellten. Auch Dateien werden vom Informatik-Duden zu den einfachen Datenstrukturen gezählt.

Abstrakte Datenstrukturen sind dagegen Konzepte wie Keller, Schlange, Binärbaum, Suchbaum und so weiter, die von den meisten Programmiersprachen nicht direkt unterstützt werden, aber dafür für das Informatik-Abitur eine wichtige Rolle spielen.

Fällt Ihnen hier auf, dass wieder recht lässig mit den Begriffen umgegangen wird? Datenstrukturen wie Arrays (Felder) können als Elemente nicht nur primitive Datentypen wie int oder float haben, sondern auch komplexere Datenstrukturen. So kann ein Array beispielsweise aus Objekten einer Klasse bestehen:

public class Gegenstand
{
   int angriff, int verteidigung;
   String name;
   ...
}

public class Inventar
{
   Gegenstand[] dinge = new Gegenstand[12];
   int anzahl = 0;
   ...
}

Der Array dinge der Klasse Inventar enthält zwölf Objekte der Klasse Gegenstand.

Diese "einfachen Datenstrukturen" sind doch recht komplex aufgebaut, daher halte ich die Bezeichnung "einfache Datenstruktur" nicht für angemessen. Gut finde ich dagegen die Erwähnung der abstrakten Datenstrukturen im Duden, obwohl ich die Wortwahl "Datenstruktur" für falsch halte; die meisten Quellen sprechen von "abstrakten Datentypen".

Hier eine kleine Übersicht über die Begriffe, wie ich sie auf meinen Webseiten verwende:

  • Datentyp = primitiver Datentyp wie int, float, double, char, boolean und so weiter.
  • Datenstruktur = zusammengesetzte Strukturen aus Datentypen oder anderen Datenstrukturen, zum Beispiel die Klasse Inventar aus dem obigen Beispiel oder den Array dinge, ebenfalls aus dem oberen Beispiel.
  • Abstrakter Datentyp = nur durch seine Operationen definierter Typ wie Stapel, Schlange, Liste, Suchbaum etc.

Nachdem jetzt alle Klarheiten beseitigt sind, können wir uns mit dem eigentlichen Thema dieser Folge befassen, mit den Abstrakten Datentypen. Wer noch nicht genug hat von den ganzen abstrakten Sachen oder sich auf das mündliche Abitur vorbereiten will, kann sich ja noch die drei Lexikoneinträge

durchlesen.

Seitenanfang -
Weiter mit Abstrakten Datentypen...