Algorithmen und Datenstrukturen
eBook - ePub

Algorithmen und Datenstrukturen

Eine EinfĂŒhrung mit Java

Gunter Saake, Kai-Uwe Sattler

Share book
  1. 608 pages
  2. German
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Algorithmen und Datenstrukturen

Eine EinfĂŒhrung mit Java

Gunter Saake, Kai-Uwe Sattler

Book details
Book preview
Table of contents
Citations

About This Book

Algorithmen und Datenstrukturen von Grund auf verstehen

  • Fundierte EinfĂŒhrung mit klarem didaktischen Aufbau
  • Mit konkreten Anwendungsbeispielen
  • Eine reichhaltige Fundgrube fĂŒr Lehre und Selbststudium

Kenntnisse von Algorithmen und Datenstrukturen sind ein Grundbaustein des Studiums der Informatik und verwandter Fachrichtungen. Das Buch behandelt diese Thematik in Verbindung mit der Programmiersprache Java und schlĂ€gt so eine BrĂŒcke zwischen den klassischen LehrbĂŒchern zur Theorie von Algorithmen und Datenstrukturen und den praktischen EinfĂŒhrungen in eine konkrete Programmiersprache.

Die konkreten Algorithmen und deren Realisierung in Java werdenumfassend dargestellt. Daneben werden die theoretischen Grundlagen vermittelt, die in Programmiersprachen-Kursen oft zu kurz kommen: abstrakte Maschinenmodelle, Berechenbarkeit, Algorithmenparadigmen sowie parallele und verteilte AblÀufe. Einen weiteren Schwerpunkt bilden Datenstrukturen wie Listen, BÀume, Graphen und Hashtabellen sowie deren objektorientierte
Implementierung mit modernen Methoden der Softwareentwicklung.

Die 6. Auflage fĂŒhrt einige neue Algorithmen ein und berĂŒcksichtigt die Neuerungen der aktuellen Java-Versionen, u.a. zu Themen wie Parallelisierung.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Algorithmen und Datenstrukturen an online PDF/ePUB?
Yes, you can access Algorithmen und Datenstrukturen by Gunter Saake, Kai-Uwe Sattler in PDF and/or ePUB format, as well as other popular books in Computer Science & Programming in Java. We have over one million books available in our catalogue for you to explore.

Information

Publisher
dpunkt.verlag
Year
2020
ISBN
9783969100677
Edition
6

Teil III

Datenstrukturen

11Abstrakte Datentypen

Abstrakte Datentypen wurden bereits im Abschnitt 2.3 kurz eingefĂŒhrt. Ein abstrakter Datentyp fasst die wesentlichen Eigenschaften und Operationen einer Datenstruktur zusammen, ohne auf deren tatsĂ€chliche Realisierung im Rechner einzugehen. Hier soll dieser Stoff nun rekapituliert und vertieft werden.
Geheimnisprinzip oder programming by contract
Um Programme möglichst wiederverwendbar zu gestalten und von unnötigen Details zu abstrahieren, sollte man Datenstrukturen unabhÀngig von ihrer spÀteren Implementierung in einer konkreten Programmiersprache spezifizieren. Diese Beschreibung ist so zu gestalten, dass Programmierer sich dieser Datenstrukturen bedienen können, um Probleme zu lösen, dass aber die Implementierung jederzeit geÀndert werden kann, ohne dass die Anwender der Datenstruktur etwas davon merken. Diese Eigenschaft wird auch als Geheimnisprinzip oder programming by contract bezeichnet.
Die Motivation hinter der Spezifikation abstrakter Datentypen lÀsst sich somit kurz gefasst wie folgt formulieren:
Beschreibung von Datenstrukturen unabhÀngig von ihrer spÀteren Implementierung in einer konkreten Programmiersprache
Im Folgenden werden wir das KĂŒrzel ADT fĂŒr derartig spezifizierte abstrakte Datentypen benutzen.
Ein ADT kann das VerstĂ€ndnis eines in einer Programmiersprache fest integrierten Datentyps verdeutlichen, indem die wesentlichen Eigenschaften knapp und eindeutig festgelegt werden. Interessant ist der Einsatz von ADTs fĂŒr neu entwickelte Datentypen, die zum Beispiel Teil einer neu realisierten Bibliothek von Funktionen werden. Bei neu entwickelten Datentypen muss man daher jeweils die folgenden beiden Aspekte unterscheiden:
Konkrete vs. abstrakte Datentypen
  • Konkrete Datentypen werden aus Basisdatentypen bzw. Java-Klassen konstruiert und sind somit direkt in einer Implementierung einsetzbar.
  • Abstrakte Datentypen bilden nur eine Spezifikation der Schnittstelle nach außen, indem sie Operationen und ihre FunktionalitĂ€t festlegen. Sie sind nicht direkt in ein Programm einbindbar.
Es kann mehrere konkrete Datentypen zu ein und demselben abstrakten Datentyp geben.
In der Softwaretechnik entsprechen Realisierungen von ADTs Softwaremodulen. Derartige Softwaremodule beachten die folgenden Prinzipien:
Kapselung
  • Kapselung: Ein ADT-Modul darf nur ĂŒber seine Schnittstelle benutzt werden.
Geheimnisprinzip
  • Geheimnisprinzip: Die interne Realisierung eines ADT-Moduls ist verborgen.
Solche Softwaremodule haben Eigenschaften analog zu Klassen in objektorientierten Programmiersprachen, und somit sind ADTs gewissermaßen Grundlage des Prinzips der objektorientierten Programmierung. Allerdings werden wir sehen, dass ADTs eine einfachere Modellbildung als objektorientierte Programmiersprachen haben und die beiden Konzepte nicht einfach gleichgesetzt werden sollten.
Wir gehen in diesem Kapitel wie folgt vor: Wir beginnen mit der Konkretisierung des Begriffs der Schnittstelle eines ADT und des Modellbegriffs fĂŒr ADTs, indem das Modell eines ADT eine Algebra bildet. Als Beispiel fĂŒr die Spezifikation von ADTs betrachten wir die algebraische Spezifikation mittels Gleichungen. In dem darauf folgenden Abschnitt werden wir einige nichttriviale Beispiele fĂŒr (parametrisierte) ADTs betrachten, um ein GefĂŒhl fĂŒr das Arbeiten mit der algebraischen Spezifikation zu bekommen. Der letzte Abschnitt ist dann der Umsetzung von ADTs in Programmiersprachen, insbesondere natĂŒrlich in Java, gewidmet.

11.1Signaturen und Algebren

Ziel dieses Abschnittes ist es, einige bereits in Abschnitt 2.3 ei...

Table of contents