= Abstrakte Datentypen - Binaerbaeume

|===
|Zuordnung| Alg
|Klassenstufe| KS
|Bildungsplanbezug | BF, LF
|Werkzeug| BJ
|Autoren| R. Helfrich
|===

== Inhalt
Ein Abstrakter Datentyp (ADT) ist zunächst einmal ein Verbund von Objekten. Er verrät nichts über seinen inneren Aufbau, sondern erlaubt den Zugriff auf die enthaltenen Objekte ausschließlich mittels seiner Methoden. Diese Methoden sind über ihre Signatur definiert, also z.B. die Methode enthaelt(val: T): boolean. Hier ist festgelegt, dass die Methode mit dem Namen enthaelt einen Parameter des Typs T hat und einen Wert des Typs boolean zurückgibt. Eine Klasse, die einen ADT darstellen soll, muss alle definierten Methoden1 enthalten. Dies entspricht zunächst einmal dem Konzept der abstrakten Klassen bzw. Interfaces. 
Ein ADT definiert zusätzlich noch eine bestimmte Semantik, d.h. man erwartet, dass der Aufruf einer Methode einen bestimmten Effekt hat, der unabhängig von der darunterliegenden Implementation ist. Ein Programmierer, der bei einer Liste die Methode anhaengen aufruft, erwartet, dass der neu angehängte Wert sich unmittelbar danach an der letzten Stelle der Liste befindet.