Zusammenfassung
Algorithmen und Datenstrukturen sind Thema dieses Buches. Algorithmen arbeiten auf Datenstrukturen und Datenstrukturen enthalten Algorithmen als Komponenten; insofern sind beide untrennbar miteinander verknüpft. In der Einleitung wollen wir diese Begriffe etwas beleuchten und sie einordnen in eine “Umgebung” eng damit zusammenhängender Konzepte wie Funktion, Prozedur, Abstrakter Datentyp, Datentyp, Algebra, Typ (in einer Programmiersprache), Klasse und Modul.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Literaturhinweise
Zu Algorithmen und Datenstrukturen gibt es eine Fülle guter Bücher, von denen nur einige erwähnt werden können. Hervorheben wollen wir das Buch von Aho, Hopcroft und Ullman [1983], das den Aufbau und die Darstellung in diesem Buch besonders beeinflußt hat. Wichtige “Klassiker” sind [Knuth 1998], [Aho 1974] und Wirth [2000, 1996] (die ersten Auflagen von Knuth und Wirth sind 1973 bzw. 1975 erschienen). Ein hervorragendes deutsches Buch ist [Ottmann und Widmayer 2002]. Weitere gute Darstellungen finden sich in [Mehlhom 1984a–c], [Horowitz, Sahni und Anderson-Freed 1993], [Sedgewick 2002a, 2002b] und [Wood 1993]. Manber [1989] betont den kreativen Prozess bei der Entwicklung von Algorithmen, beschreibt also nicht nur das Endergebnis. Gönnet und Baeza-Yates [1991] stellen eine große Fülle von Algorithmen und Datenstrukturen jeweils knapp dar, bieten also so etwas wie einen “Katalog”. Die Analyse von Algorithmen wird besonders betont bei Baase und Van Gelder [2000] und Banachowski. [1991]. Nievergelt und Hinrichs [1993] bieten eine originelle Darstellung mit vielen Querverbindungen und Themen, die man sonst in Büchern zu Algorithmen und Datenstrukturen nicht findet, u. a. zu Computergraphik, geometrischen Algorithmen und externen Datenstrukturen.
Einige Bücher zu Datenstrukturen haben Versionen in einer ganzen Reihe von Programmiersprachen, etwa in PASCAL, C, C++ oder Java, so z.B. Sedgewick [2002a, 2002b], Standish [1998] oder Weiss [ 1998 ].
Die bei uns für die Ausformulierung konkreter Programme verwendete Sprache Java ist z.B. in [Flanagan 2000] beschrieben.
Eine ausgezeichnete Darstellung mathematischer Grundlagen und Techniken für die Analyse von Algorithmen bietet das Buch von Graham, Knuth und Patashnik [ 1994 ]. Wir empfehlen es besonders als Begleitlektüre. Unser Material zu mathematischen Grundlagen im Anhang kann man dort, natürlich wesentlich vertieft, wiederfinden.
Eine gründliche Einführung in die Theorie und Praxis der Analyse von Algorithmen mit einer Darstellung möglicher Maschinenmodelle wie der RAM findet sich bei [Aho 1974 ]. “Registermaschinen” werden auch bei Albert und Ottmann [1990] diskutiert; das Konzept stammt aus einer Arbeit von Sheperdson und Sturgis [1963]. Die “real RAM” wird bei Preparata und Shamos [1985] beschrieben.
Abstrakte Datentypen und algebraische Spezifikation werden in den Büchern von Ehrich. [1989] und Klaeren [1983] eingehend behandelt. Die von uns verwendete Spezifikationsmethode (direkte Beschreibung einer Algebra mit allgemeiner mathematischer Notation) wird dort als “exemplarische applikative Spezifikation” bzw. als “denotationelle Spezifikation” bezeichnet und in einführenden Kapiteln kurz erwähnt; die Bücher konzentrieren sich dann auf die formale Behandlung abstrakter Datentypen. Auch Loeckx [1996] bieten eine umfassende Darstellung des Gebietes; der Zusammenhang zwischen Signatur, mehrsortiger Algebra und abstraktem Datentyp wird dort in Kapitel 2 beschrieben. Eine gute Einführung zu diesem Thema findet sich auch bei Bauer und Wössner [1984]. Ein Buch zu Datenstrukturen, in dem algebraische Spezifikation für einige grundlegende Datentypen durchgeführt wird, ist [Horowitz 1993]. Auch Sedgewick [2002a, 2002b] betont abstrakte Datentypen und zeigt die Verbindung zu objekt-orientierter Progranmiierung, also Klassen in C++. Wood [1993] arbeitet systematisch mit abstrakten Datentypen, wobei jeweils die Signatur angegeben und die Semantik der Operationen möglichst präzise umgangssprachUch beschrieben wird.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2004 B. G. Teubner Verlag / GWV Fachverlage GmbH, Wiesbaden
About this chapter
Cite this chapter
Güting, R.H., Dieker, S. (2004). Einführung. In: Datenstrukturen und Algorithmen. Leitfäden der Informatik. Vieweg+Teubner Verlag. https://doi.org/10.1007/978-3-322-89113-6_1
Download citation
DOI: https://doi.org/10.1007/978-3-322-89113-6_1
Publisher Name: Vieweg+Teubner Verlag
Print ISBN: 978-3-519-22121-0
Online ISBN: 978-3-322-89113-6
eBook Packages: Springer Book Archive