18Literaturhinweise zum Teil III

Das Konzept der abstrakten Datentypen wird in vielen Lehrbüchern für Einführungsveranstaltungen und auch in Büchern zur theoretischen Informatik und zu logischen Grundlagen der Informatik behandelt. Eine logikorientierte Einführung in die wichtigsten Aspekte bietet das Buch von Kreowski [Kre91]. Als weiterführende Literatur seien spezielle Bücher zur algebraischen Spezifikation von ADT empfohlen [EM85, EGL89].

Die objektorientierten Konzepte von Java werden auch in den meisten Büchern zur Programmiersprache behandelt, die wir bereits in Abschnitt 4 auf Seite 119 aufgeführt haben. Mit der objektorientierten Programmierung in Java beschäftigt sich auch das Buch von Wolff [Wol99]. Eine ausführliche Beschreibung der Java-Klassenbibliothek ist u.a. in den Büchern von Flanagan [Fla00] und Inden [Ind17] zu finden.

Grundlegende Datenstrukturen und deren Umsetzung werden sehr gut in den Büchern von Sedgewick [Sed02a, Sed02b], Goodrich/Tamassia [GT14] und Weiss [Wei98] erläutert. Diese Bücher behandeln auch die Themenbereiche Bäume, Hashen und Graphen.

Einige der beschriebenen Baumstrukturen (B-Bäume, Tries) und das dynamische Hashen sind insbesondere für die Speicherung von Daten auf Hintergrundspeichern entwickelt worden. Sie werden daher vor allem in Büchern zur Implementierung von Datenbanksystemen ausführlich behandelt [HR01, SSH19]. Auch das Buch von Tharp beschäftigt sich intensiv mit derartigen Speicherstrukturen, darunter sind auch verschiedene dynamische Hashverfahren [Tha88]. Cuckoo-Hashing wurde erstmals in [PR01] vorgestellt, die Eignung insbesondere für kleine Hashtabellen wurde u.a. in [ZHB06] gezeigt.

Graphenalgorithmen werden besonders ausführlich im Buch von Ottmann und Widmayer [OW17] sowie im Buch von Mehlhorn [Meh84b] behandelt. Das Buch von Barabasi [BP16] gibt unter dem Titel »Network Science« einen umfassenden Einblick in Verfahren zur Graphanalyse und ist auch unter http://networksciencebook.com frei verfügbar. Der PageRank-Algorithmus wurde zuerst in einem Patent veröffentlicht und anschließend in [BP98] beschrieben.

Textsuche und insbesondere endliche Automaten für reguläre Ausdrücke werden vor allem in Büchern zum Information Retrieval [FBY99] und zum Compilerbau [ASU99] ausführlich erläutert.

Ähnlichkeitssuche auf Texten spielt eine wichtige Rolle in vielen Anwendungsgebieten, so bei der Suche mittels Suchmaschinen etwa im Web, bei der Datenintegration und Analyse, bei der Plagiatserkennung, bei der Erkennung von Code-Clonen in Programmen oder beim Data Cleaning in Data Warehouses. Der Einsatz in Data Warehouses wird beispielsweise in [KSS14] behandelt. Das Buch von Peter Christen [Chr12] beinhaltet ausführlich den Einsatz derartiger Techniken bei der Integration von Datenquellen.