Grundlagen der Programmierung: Datenstrukturen

Abstrakte Datentypen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Bei abstrakten Datentypen handelt es sich um Datentypen, bei denen Sie sich nicht darum kümmern müssen, wie diese von den einzelnen Programmen tatsächlich verarbeitet werden.

Transkript

Wenn wir von Stacks und Queues sprechen oder von verlinkten Listen, bewegen wir uns in Bereichen von etwas, das oft als abstrakte Datentypen bezeichnet wird: ADTs. Jetzt kann das ein etwas verwischter Begriff sein. Vor allem, weil das Wort abstrakt beim Programmieren mehrere Bedeutungen haben kann. Um also abstrakte Datentypen verstehen zu können, denken Sie zuerst an Datentypen wie integer, boolean, float oder double. Ein Datentyp beschreibt nicht einen speziellen Wert, sondern er beschreibt, was diesem Wert erlaubt wird darzustellen. Und was dieser Wert tun darf. Dass ein Integer eine ganze Zahl mit einem speziellen erlaubten Rahmen an, sagen wir -2,1 Milliarden zu + 2,1 Milliarden hat. Aber ein Boolean kann nur wahr oder falsch sein, und so weiter. Und die Formalitäten darüber, was die Datentypen tun können, sind Bestandteil der jeweiligen Programmiersprache. Aber wir können diese sehr grundlegenden Sprachkonstrukte nehmen und daraus komplexere Datenstrukturen entwickeln, wie eben Stacks und Queues und verlinkte Listen. Und dann wird deutlich, dass diese Art Datenstrukturen nicht etwas repräsentieren, das für eine spezielle Applikation gemacht wurde, wie zum Beispiel die Definition von Mitarbeiter oder Flugzeug oder ein Produkt oder ein Ding. Stacks und Queues und verlinkte Listen sind viel besser wiederverwendbar, viel abstrakter als diese. Wir können sie als abstrakte Datentypen ansprechen. Ein Stack ist ein abstrakter Datentyp. Und wir erwarten von einem Stack ein bestimmtes Verhalten. Wenn wir einen Stack haben, haben wir ein Last-in-first-out-Verhalten der Datenstrukturen und können mit push, pop und peek arbeiten. Das ist das, was wir uns in einem Stack erwarten, was er kann. Aber die tatsächliche Umsetzung des Stacks ist abstrahiert. Es ist kein Geheimnis. Es geht nur darum, dass wir uns nicht mehr drum kümmern müssen. Anders würden wir über Standard-Arrays sprechen, bei denen wir an Dinge wie fortlaufenden Speicher denken müssten, sind wir bei einer Arbeit mit einem Stack nicht wirklich daran interessiert. Wie ein Stack tatsächlich umgesetzt wird, ist nicht so wichtig. Ein Stack könnte und unter der Oberfläche wird er auch oft als dynamisches Array umgesetzt. Er könnte aber genauso als verlinkte Liste umgesetzt werden. Es ist wirklich egal. Ich könnte einen Python-Programmierer haben, der mit einem C#-Programmierer spricht, die zusammen mit einem C++-Programmierer sprechen und die unterhalten sich wieder mit einem Java-Programmierer und alle sprechen über die Idee des Stacks und sind am selben Stand. Und sie kümmern sich die Bohne um die Umsetzung in der jeweiligen Sprache. Jetzt noch eine Unterscheidung, falls Sie ein objektorientierter Programmierer beziehungsweise eine objektorientierte Programmiererin sind. Es mag recht gleich klingen, aber abstrakte Datentypen sind nicht dasselbe wie abstrakte Klassen. In objektorientierten Programmiersprachen haben abstrakte Klassen eine sehr spezifische Bedeutung. Mit einer Klasse können Sie Vererbtes nicht instanzieren. Das ist mit einem abstrakten Datentyp nicht gemeint. In Java zum Beispiel gibt es eine Stack-Klasse. Es ist eine reguläre, konkrete Klasse. Ich kann ein neues Stack-Objekt instanzieren, kann damit push- und pop-Befehle ausführen, aber der Stack ist genau so ein abstrakter Datentyp. Das heißt, es ist eine Umsetzung dieser Idee. Eine Zuletzt-hinein-zuerst-heraus- Datenstruktur. in die wir pushen, poppen, und peeken können. Also ist ein Stack eine reale, konkrete Klasse und genau so ein abstrakter Datentyp.

Grundlagen der Programmierung: Datenstrukturen

Erhalten Sieeinen klaren Eindruck von Datenstrukturen und deren Eigenheiten und verstehen, wie Sie diese am besten einsetzen können – ganz unabhängig von den einzelnen Programmiersprachen.

2 Std. 51 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!