Algorithmen und Datenstrukturen
eBook - ePub

Algorithmen und Datenstrukturen

Eine Einführung mit Java

Gunter Saake, Kai-Uwe Sattler

Compartir libro
  1. 608 páginas
  2. German
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Algorithmen und Datenstrukturen

Eine Einführung mit Java

Gunter Saake, Kai-Uwe Sattler

Detalles del libro
Vista previa del libro
Índice
Citas

Información del libro

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.

Preguntas frecuentes

¿Cómo cancelo mi suscripción?
Simplemente, dirígete a la sección ajustes de la cuenta y haz clic en «Cancelar suscripción». Así de sencillo. Después de cancelar tu suscripción, esta permanecerá activa el tiempo restante que hayas pagado. Obtén más información aquí.
¿Cómo descargo los libros?
Por el momento, todos nuestros libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
¿En qué se diferencian los planes de precios?
Ambos planes te permiten acceder por completo a la biblioteca y a todas las funciones de Perlego. Las únicas diferencias son el precio y el período de suscripción: con el plan anual ahorrarás en torno a un 30 % en comparación con 12 meses de un plan mensual.
¿Qué es Perlego?
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
¿Perlego ofrece la función de texto a voz?
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¿Es Algorithmen und Datenstrukturen un PDF/ePUB en línea?
Sí, puedes acceder a Algorithmen und Datenstrukturen de Gunter Saake, Kai-Uwe Sattler en formato PDF o ePUB, así como a otros libros populares de Computer Science y Programming in Java. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Editorial
dpunkt.verlag
Año
2020
ISBN
9783969100677
Edición
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...

Índice