Gunter Saake, Kai-Uwe Sattler, 6. Auflage, dpunkt.verlag, Heidelberg 2020
- Programm 1-1: "Hello World" in Java
- Programm 3-1: Imperative Berechnung der Fakultät
- Programm 3-2: Rekursive Berechnung der Fakultät
- Programm 3-3: Programm zum Darstellen des Pythagoras-Baumes
- Programm 3-34: Hauptprogramm für den Pythagoras-Baum
- Programm 5-1: Sequenzielle Suche
- Programm 5-2: Binäre Suche
- Programm 5-3: Implementierung des InsertionSort
- Programm 5-4: Implementierung des SelectionSort
- Programm 5-5: Implementierung des BubbleSort
- Programm 5-6: Implementierung des MergeSort
- Programm 5-7: Implementierung des QuickSort
- Programm 5-8: Implementierung des RadixSort
- Programm 6-1: Einfacher Markov-Interpreter in Java
- Programm 6-2: Klasse für die Konfiguration
- Programm 6-3: Schnittstelle für Befehle
- Programm 6-4: Implementierung des Befehls LOAD
- Programm 6-5: Implementierung des Befehls IF-GOTO
- Programm 6-6: Implementierung der Registermaschine
- Programm 6-7: Programmausführung mit der Registermaschine
- Programm 8-1: Java-Umsetzung des Spielablaufs
- Programm 8-2: Zugberechnung für Tic Tac Toe
- Programm 9-1: Implementierung als Subklasse von Thread
- Programm 9-2: Implementierung über Runnable-Schnittstelle
- Programm 9-3: Synchronisation von Producer-Consumer
- Programm 9-4: Parallele Berechnung der Fibonacci-Zahlen
- Programm 9-5: Thread-Pool zur parallelen Berechnung
- Programm 9-6: Grobstruktur eines Philosophen
- Programm 9-7: Implementierung der Gabeln
- Programm 9-8: Vollständige Implementierung eines Philosophen
- Programm 9-9: Initialisierung der fünf Philosophen
- Programm 9-10: Semaphor als Java-Klasse
- Programm 12-1: Beispiel einer Klassendefinition
- Programm 12-2: Vererbung in Java
- Programm 12-3: Definition der MeineException
- Programm 12-4: Implementierung des ADT RatNumber
- Programm 13-1: Definition der Stack-Schnittstelle
- Programm 13-2: Nutzung des Datentyps Stack
- Programm 13-3: Definition der Queue-Schnittstelle
- Programm 13-4: Implementierung des Stacks auf Basis eines Feldes
- Programm 13-5: Implementierung der Queue auf Basis eines Feldes
- Programm 13-6: Definition der Knotenklasse der Liste
- Programm 13-7: Definition der Klasse List
- Programm 13-8: Implementierung des Stacks auf Basis von List
- Programm 13-9: Klasse Node für eine doppelt verkettete Liste
- Programm 13-10: Implementierung der doppelt verketteten Liste
- Programm 13-11: Implementierung der Skip-Liste
- Programm 13-12: Iterator für die Klasse DList
- Programm 14-1: Knotenklasse für BinaryTree
- Programm 14-2: Traversierungsmethoden I
- Programm 14-3: Traversierung im binären Baum
- Programm 14-4: Traversierungsmethoden II
- Programm 14-5: Vergleichsmethode für die Klasse TreeNode
- Programm 14-6: Suchoperationen für die Klasse BinaryTree
- Programm 14-7: Einfügen für die Klasse BinaryTree
- Programm 14-8: Löschen für die Klasse BinaryTree
- Programm 14-9: Knotenklasse für RedBlackTree
- Programm 14-10: Einfügen im Rot-Schwarz-Baum
- Programm 14-11: Splitten von 4-Knoten im Rot-Schwarz-Baum
- Programm 14-12: Rotation im Rot-Schwarz-Baum
- Programm 14-13: Knotenklasse für den AVL-Baum
- Programm 14-14: Einfügen im AVL-Baum
- Programm 14-15: Rotationen im AVL-Baum
- Programm 14-16: Knotenklasse für BTree
- Programm 14-17: Suchen im BTree
- Programm 14-18: Einfügen im BTree
- Programm 14-17: Einfügen und Split im BTree-Knoten
- Programm 14-20: Knotenklassen für einen binären Trie
- Programm 14-21: Einfügemethoden für den binären Trie
- Programm 14-22: Suchen im binären Trie
- Programm 14-23: Implementierung von HeapSort
- Programm 14-24: Implementierung von Set auf Basis eines Baumes
- Programm 14-25: Iterator für TreeSet
- Programm 15-1: Schnittstelle für Hashtabellen
- Programm 15-2: Hashtabelle mit Verkettung der Überläufer
- Programm 15-3: Hashtabelle mit linearem Sondieren
- Programm 15-4: Klasse für das erweiterbare Hashen
- Programm 15-5: Initialisierung beim erweiterbaren Hashen
- Programm 15-6: Verdopplung der Indexgröße
- Programm 15-7: Einfügen beim erweiterbaren Hashen
- Programm 15-8: Split eines Blocks
- Programm 16-1: Repräsentation eines Graphen
- Programm 16-2: Implementierung des Breitendurchlaufs
- Programm 16-3: A*-Suche in Java
- Programm 16-4: PageRank-Implementierung
- Programm 17-1: 17.1 Java-Methoden für den KMP-Algorithmus
- Programm 17-2: 17.2 Implementierung des Boyer-Moore-Algorithmus
- Programm 17-3: 17.3 Simulation eines NEA
- Programm 17-4: 17.4 Implementierung der Levenshtein-Distanz
- Programm 17-5: 17.5 Implementierung des 3-Gramm-Vergleichs