Algorithmen und Datenstrukturen: eine Einführung mit Java
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt-Verl.
2006
|
Ausgabe: | 3., überarb. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Klappentext Inhaltsverzeichnis |
Beschreibung: | XVII, 512 S. graph. Darst. |
ISBN: | 3898643859 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV021296421 | ||
003 | DE-604 | ||
005 | 20140123 | ||
007 | t | ||
008 | 060118s2006 gw d||| |||| 00||| ger d | ||
020 | |a 3898643859 |9 3-89864-385-9 | ||
035 | |a (OCoLC)179970932 | ||
035 | |a (DE-599)BVBBV021296421 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c DE | ||
049 | |a DE-M347 |a DE-859 |a DE-355 |a DE-29T |a DE-1051 |a DE-473 |a DE-573 |a DE-91G |a DE-858 |a DE-898 |a DE-20 |a DE-863 |a DE-739 |a DE-Aug4 |a DE-29 |a DE-523 |a DE-83 |a DE-526 |a DE-11 |a DE-188 |a DE-2070s |a DE-703 | ||
084 | |a ST 130 |0 (DE-625)143588: |2 rvk | ||
084 | |a ST 134 |0 (DE-625)143590: |2 rvk | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a ST 265 |0 (DE-625)143634: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 530f |2 stub | ||
100 | 1 | |a Saake, Gunter |d 1960- |e Verfasser |0 (DE-588)122164458 |4 aut | |
245 | 1 | 0 | |a Algorithmen und Datenstrukturen |b eine Einführung mit Java |c Gunter Saake ; Kai-Uwe Sattler |
250 | |a 3., überarb. Aufl. | ||
264 | 1 | |a Heidelberg |b dpunkt-Verl. |c 2006 | |
300 | |a XVII, 512 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Datenstruktur |0 (DE-588)4011146-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Algorithmus |0 (DE-588)4001183-5 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Datenstruktur |0 (DE-588)4011146-5 |D s |
689 | 0 | 1 | |a Algorithmus |0 (DE-588)4001183-5 |D s |
689 | 0 | 2 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |8 1\p |5 DE-604 | |
689 | 1 | 0 | |a Algorithmus |0 (DE-588)4001183-5 |D s |
689 | 1 | 1 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 1 | |5 DE-604 | |
700 | 1 | |a Sattler, Kai-Uwe |d 1968- |e Verfasser |0 (DE-588)120420392 |4 aut | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2757806&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Regensburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Klappentext |
856 | 4 | 2 | |m Digitalisierung UBRegensburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000002&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-014617179 |
Datensatz im Suchindex
DE-BY-863_location | 1000 |
---|---|
DE-BY-FWS_call_number | 1000/ST 134 S111(3) |
DE-BY-FWS_katkey | 264225 |
DE-BY-FWS_media_number | 083100976339 083100976340 083100976362 083100976373 083100976384 083100976395 083100976408 083100956766 083100956755 |
_version_ | 1814238394055655424 |
adam_text |
Gunter Saake • Kai-Uwe Sattler
Algorithmen und
Datenstrukturen
Kenntnisse von Algorithmen und Datenstruk¬
turen 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 Lehr¬
büchern zurTheorie von Algorithmen und
Datenstrukturen und den praktischen Einfüh¬
rungen in eine konkrete Programmiersprache.
Die konkreten Algorithmen und deren Reali¬
sierung in Java werden umfassend dargestellt.
Daneben werden die theoretischen Grundlagen
vermittelt, die in Programmiersprachen-Kursen
oft zu kurz kommen: abstrakte Maschinenmo¬
delle, Berechenbarkeit, Algorithmenparadigmen
sowie parallele und verteilte Abläufe. Einen
weiteren Schwerpunkt bilden Datenstrukturen
wie Listen, Bäume, Graphen und Hashtabeilen
sowie deren objektorientierte Implementierung
mit modernen Methoden der Softwareentwick¬
lung.
Die Neuerungen der 3. Auflage beziehen sich
im Wesentlichen auf die Vorstellung der neuen
Sprach konzepte von Java in der Version 5.0, die
gerade im Zusammenhang mit Datenstruktu¬
ren wie Feldern oder Listen von Bedeutung sind.
Das Buch richtet sich an Studierende im
Grundstudium an Universitäten und Fachhoch¬
schulen sowie an alle, die die Grundlagen der
praktischen Informatik strukturiert erlernen
wollen. Sie erwerben damit die Basis für die
theoretischen und praktischen Vertiefungen
im Hauptstudium und lernen gleichzeitig die
Umsetzung in den »Alltag« der Software¬
entwicklung kennen.
Thema
Informatik-Lehrbuch
Praktische Informatik
Java
Leser
Studierende der
Informatik und
benachbarter Disziplinen
Website
•
alg_dat.html
XI
Inhaltsverzeichnis
I
1 Vorbemerkungen und Überblick. 3
1.1 Informatik, Algorithmen und Datenstrukturen. 3
1.2 Historischer Überblick: Algorithmen. 5
1.3 Historie von Programmiersprachen und Java. 6
1.4 Grundkonzepte der Programmierung in Java. 8
2 Algorithmische Grundkonzepte. 15
2.1 Intuitiver Algorithmusbegriff. 15
2.1.1 Beispiele für Algorithmen. 15
2.1.2 Bausteine für Algorithmen. 19
2.1.3
2.1.4 Struktogramme. 26
2.1.5 Rekursion . 26
2.2 Sprachen und Grammatiken. 29
2.2.1 Begriffsbildung. 30
2.2.2 Reguläre Ausdrücke. 31
2.2.3
2.3 Elementare Datentypen. 34
2.3.1 Datentypen als Algebren . 34
2.3.2 Signaturen von Datentypen. 35
2.3.3 Der Datentyp bool. 36
2.3.4 Der Datentyp integer. 37
2.3.5 Felder und Zeichenketten. 38
2.4
2.4.1 Bildung von Termen. 40
2.4.2 Algorithmus zur Termauswertung. 42
2.5 Datentypen in Java . 43
2.5.1 Primitive Datentypen. 43
2.5.2 Referenzdatentypen . 45
2.5.3 Operatoren. 49
Ixii Inhaltsverzeichnis
3 Algorithmenparadigmen. 53
3.1 Überblick über Algorithmenparadigmen. 53
3.2 Applikative Algorithmen. 54
3.2.1
3.2.2 Funktionsdefinitionen. 55
3.2.3 Auswertung von Funktionen. 55
3.2.4 Erweiterung der Funktionsdefinition . 57
3.2.5 Applikative Algorithmen . 58
3.2.6 Beispiele für applikative Algorithmen. 59
3.3 Imperative Algorithmen. 67
3.3.1 Grundlagen imperativer Algorithmen. 67
3.3.2 Komplexe Anweisungen. 70
3.3.3 Beispiele für imperative Algorithmen. 73
3.4 Das logische Paradigma. 79
3.4.1 Logik der Fakten und Regeln. 79
3.4.2 Deduktive Algorithmen. 81
3.5 Weitere Paradigmen. 85
3.5.1 Genetische Algorithmen. 86
3.5.2 Neuronale Netze. 89
3.6 Umsetzung in Java. 92
3.6.1 Ausdrücke und Anweisungen. 93
3.6.2 Methoden. 100
3.6.3 Applikative Algorithmen und Rekursion . 105
4 Literaturhinweise zum Teil
II
5 Ausgewählte Algorithmen .115
5.1 Suchen in sortierten Folgen.115
5.1.1 Sequenzielle Suche.116
5.1.2 Binäre Suche.118
5.2 Sortieren.122
5.2.1 Sortieren: Grundbegriffe.122
5.2.2 Sortieren durch Einfügen_,.123
5.2.3 Sortieren durch Selektion.125
5.2.4 Sortieren durch Vertauschen: BubbleSort.127
5.2.5 Sortieren durch Mischen: MergeSort.129
5.2.6
5.2.7 Sortierverfahren im Vergleich.137
Inhaltsverzeichnis
6 Formale Algorithmenmodelle.141
6.1 Registermaschinen.141
6.2 Abstrakte Maschinen.150
6.3 Markov-Algorithmen.154
6.4 Church'sche These .160
6.5 Interpreter für formale Algorithmenmodelle in Java . 162
6.5.1
6.5.2 Registermaschine in Java .164
7 Eigenschaften von Algorithmen .171
7.1 Berechenbarkeit und Entscheidbarkeit.171
7.1.1 Existenz nichtberechenbarer Funktionen.172
7.1.2 Konkrete nichtberechenbare Funktionen.174
7.1.3 Das Halteproblem.176
7.1.4 Nichtentscheidbare Probleme.178
7.1.5 Post'sches Korrespondenzproblem.179
7.2 Korrektheit von Algorithmen.181
7.2.1 Relative Korrektheit.181
7.2.2 Korrektheit von imperativen Algorithmen.182
7.2.3 Korrektheitsbeweise für Anweisungstypen.185
7.2.4 Korrektheit imperativer Algorithmen an Beispielen . 187
7.2.5 Korrektheit applikativer Algorithmen.192
7.3 Komplexität.194
7.3.1 Motivierendes Beispiel.194
7.3.2 Asymptotische Analyse.195
7.3.3 Komplexitätsklassen.199
7.3.4 Analyse von Algorithmen.202
8 Entwurf von Algorithmen.205
8.1 Entwurfsprinzipien.205
8.1.1 Schrittweise Verfeinerung .205
8.1.2 Einsatz von Algorithmenmustern.206
8.1.3 Problemreduzierung durch Rekursion.206
8.2 Algorithmenmuster:
8.2.1 Greedy-Algorithmen am Beispiel .207
8.2.2
8.2.3 Verfeinerung der Suche nach billigster Kante.210
8.3 Rekursion: Divide-and-conquer.212
8.3.1 Das Prinzip »Teile und herrsche«.212
8.3.2 Beispiel: Spielpläne für Turniere.214
8.4 Rekursion:
8.4.1 Prinzip des
8.4.2 Beispiel: Das Acht-Damen-Problem .218
I xiv
8.5 Dynamische Programmierung.221
8.5.1 Das Rucksackproblem .222
8.5.2 Rekursive Lösung des Rucksackproblems.223
8.5.3 Prinzip der dynamischen Programmierung .224
9 Verteilte Berechnungen.227
9.1 Kommunizierende Prozesse.227
9.2 Modell der Petri-Netze.228
9.2.1 Definition von Petri-Netzen.228
9.2.2 Formalisierung von Petri-Netzen .232
9.2.3 Das Beispiel der fünf Philosophen .234
9.3 Programmieren nebenläufiger Abläufe.236
9.3.1 Koordinierte Prozesse.237
9.3.2 Programmieren mit Semaphoren.238
9.3.3 Philosophenproblem mit Semaphoren.240
9.3.4 Verklemmungsfreie Philosophen .242
9.4 Beispielrealisierung in Java.244
10 Literaturhinweise zum Teil
III
11 Abstrakte Datentypen .255
11.1 Signaturen und Algebren.256
11.2 Algebraische Spezifikation .258
11.2.1 Spezifikationen und Modelle .259
11.2.2 Termalgebra und Quotiententermalgebra.260
11.2.3 Probleme mit initialer Semantik.263
11.3 Beispiele für abstrakte Datentypen.264
11.3.1 Der Kellerspeicher (Stack).265
11.3.2 Beispiel für Kellernutzung.267
11.3.3 Die Warteschlange (Queue).271
11.4 Entwurf von Datentypen.272
12 Klassen, Schnittstellen und Objekte in Java.275
12.1 Grundzüge der Objektorientierung .275
12.2 Klassen und Objekte in Java.278
12.3 Vererbung.283
12.4 Abstrakte Klassen und Schnittstellen .290
12.5 Ausnahmen.293
12.6 Umsetzung abstrakter Datentypen.295
Inhaltsverzeichnis
13 Grundlegende Datenstrukturen.299
13.1 Stack und Queue als Datentypen.299
13.1.1 Implementierung des Stacks .303
13.1.2 Implementierung der Queue.304
13.1.3 Bewertung der Implementierungen.306
13.2 Verkettete Listen .307
13.3 Doppelt verkettete Listen .314
13.4 Das Iterator-Konzept.319
13.5
13.6 J2SE 5.0 und Generics.326
14 Bäume.329
14.1 Bäume: Begriffe und Konzepte .329
14.2 Binärer Baum: Datentyp und Basisalgorithmen.332
14.2.1 Der Datentyp »Binärer Baum«.332
14.2.2 Algorithmen zur Traversierung.337
14.3 Suchbäume .342
14.3.1 Suchen in Suchbäumen.343
14.3.2 Einfügen und Löschen.346
14.3.3 Komplexität der Operationen.351
14.4 Ausgeglichene Bäume.352
14.4.1 Rot-Schwarz-Bäume.353
14.4.2 AVL-Bäume.362
14.4.3 B-Bäume.370
14.5 Digitale Bäume.377
14.5.1
14.5.2 Patricia-Bäume .383
14.6 Praktische Nutzung von Bäumen.384
14.6.1 Sortieren mit Bäumen: HeapSort.385
14.6.2 Sets mit binären Suchbäumen.391
15 Hashverfahren .397
15.1 Grundprinzip des Hashens.397
15.2 Grundlagen und Verfahren.398
15.2.1 Hashfunktionen .398
15.2.2 Behandlung von Kollisionen.400
15.2.3 Aufwand beim Hashen.404
15.2.4 Hashen in Java.406
15.3 Dynamische Hashverfahren.410
15.3.1 Grundideen für dynamische Hashverfahren .411
15.3.2 Erweiterbares Hashen.414
15.3.3 Umsetzung des erweiterbaren Hashens.416
I xvi
16 Graphen.421
16.1 Arten von Graphen.421
16.1.1 Ungerichtete Graphen.422
16.1.2 Gerichtete Graphen.423
16.1.3 Gewichtete Graphen.424
16.2 Realisierung von Graphen.425
16.2.1 Knoten- und Kantenlisten .425
16.2.2 Adjazenzmatrix.426
16.2.3 Graphen als dynamische Datenstrukturen.426
16.2.4 Transformationen zwischen Darstellungen.427
16.2.5 Vergleich der Komplexität.428
16.2.6 Eine Java-Klasse für Graphen.428
16.3 Ausgewählte Graphenalgorithmen.430
16.3.1 Breitendurchlauf.431
16.3.2 Tiefendurchlauf.435
16.3.3 Zyklenfreiheit und topologisches Sortieren.439
16.4 Algorithmen auf gewichteten Graphen.441
16.4.1 Kürzeste Wege .442
16.4.2 Dijkstras Algorithmus .443
16.4.3 Kürzeste Wege mit negativen Kantengewichten . 447
16.4.4 Maximaler Durchf luss.450
16.4.5 Der Ford-Fulkerson-Algorithmus .452
16.5 Weitere Fragestellungen für Graphen.456
17 Suchen in Texten .459
17.1 Probleme der Worterkennung.459
17.2 Knuth-Morris-Pratt.461
17.3 Boyer-Moore.465
17.4
17.4.1 Reguläre Ausdrücke.471
17.4.2 Endliche Automaten .472
17.4.3 Java-Klassen für reguläre Ausdrücke.478
18 Literaturhinweise zum Teil
A
Abbildungsverzeichnis.487
Tabellenverzeichnis.493
Algorithmenverzeichnis.495
Beispielverzeichnis.497
Inhaltsverzeichnis xvii
Programmverzeichnis.499
Literaturverzeichnis.501
Index.505 |
adam_txt |
Gunter Saake • Kai-Uwe Sattler
Algorithmen und
Datenstrukturen
Kenntnisse von Algorithmen und Datenstruk¬
turen 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 Lehr¬
büchern zurTheorie von Algorithmen und
Datenstrukturen und den praktischen Einfüh¬
rungen in eine konkrete Programmiersprache.
Die konkreten Algorithmen und deren Reali¬
sierung in Java werden umfassend dargestellt.
Daneben werden die theoretischen Grundlagen
vermittelt, die in Programmiersprachen-Kursen
oft zu kurz kommen: abstrakte Maschinenmo¬
delle, Berechenbarkeit, Algorithmenparadigmen
sowie parallele und verteilte Abläufe. Einen
weiteren Schwerpunkt bilden Datenstrukturen
wie Listen, Bäume, Graphen und Hashtabeilen
sowie deren objektorientierte Implementierung
mit modernen Methoden der Softwareentwick¬
lung.
Die Neuerungen der 3. Auflage beziehen sich
im Wesentlichen auf die Vorstellung der neuen
Sprach konzepte von Java in der Version 5.0, die
gerade im Zusammenhang mit Datenstruktu¬
ren wie Feldern oder Listen von Bedeutung sind.
Das Buch richtet sich an Studierende im
Grundstudium an Universitäten und Fachhoch¬
schulen sowie an alle, die die Grundlagen der
praktischen Informatik strukturiert erlernen
wollen. Sie erwerben damit die Basis für die
theoretischen und praktischen Vertiefungen
im Hauptstudium und lernen gleichzeitig die
Umsetzung in den »Alltag« der Software¬
entwicklung kennen.
Thema
Informatik-Lehrbuch
Praktische Informatik
Java
Leser
Studierende der
Informatik und
benachbarter Disziplinen
Website
•
alg_dat.html
XI
Inhaltsverzeichnis
I
1 Vorbemerkungen und Überblick. 3
1.1 Informatik, Algorithmen und Datenstrukturen. 3
1.2 Historischer Überblick: Algorithmen. 5
1.3 Historie von Programmiersprachen und Java. 6
1.4 Grundkonzepte der Programmierung in Java. 8
2 Algorithmische Grundkonzepte. 15
2.1 Intuitiver Algorithmusbegriff. 15
2.1.1 Beispiele für Algorithmen. 15
2.1.2 Bausteine für Algorithmen. 19
2.1.3
2.1.4 Struktogramme. 26
2.1.5 Rekursion . 26
2.2 Sprachen und Grammatiken. 29
2.2.1 Begriffsbildung. 30
2.2.2 Reguläre Ausdrücke. 31
2.2.3
2.3 Elementare Datentypen. 34
2.3.1 Datentypen als Algebren . 34
2.3.2 Signaturen von Datentypen. 35
2.3.3 Der Datentyp bool. 36
2.3.4 Der Datentyp integer. 37
2.3.5 Felder und Zeichenketten. 38
2.4
2.4.1 Bildung von Termen. 40
2.4.2 Algorithmus zur Termauswertung. 42
2.5 Datentypen in Java . 43
2.5.1 Primitive Datentypen. 43
2.5.2 Referenzdatentypen . 45
2.5.3 Operatoren. 49
Ixii Inhaltsverzeichnis
3 Algorithmenparadigmen. 53
3.1 Überblick über Algorithmenparadigmen. 53
3.2 Applikative Algorithmen. 54
3.2.1
3.2.2 Funktionsdefinitionen. 55
3.2.3 Auswertung von Funktionen. 55
3.2.4 Erweiterung der Funktionsdefinition . 57
3.2.5 Applikative Algorithmen . 58
3.2.6 Beispiele für applikative Algorithmen. 59
3.3 Imperative Algorithmen. 67
3.3.1 Grundlagen imperativer Algorithmen. 67
3.3.2 Komplexe Anweisungen. 70
3.3.3 Beispiele für imperative Algorithmen. 73
3.4 Das logische Paradigma. 79
3.4.1 Logik der Fakten und Regeln. 79
3.4.2 Deduktive Algorithmen. 81
3.5 Weitere Paradigmen. 85
3.5.1 Genetische Algorithmen. 86
3.5.2 Neuronale Netze. 89
3.6 Umsetzung in Java. 92
3.6.1 Ausdrücke und Anweisungen. 93
3.6.2 Methoden. 100
3.6.3 Applikative Algorithmen und Rekursion . 105
4 Literaturhinweise zum Teil
II
5 Ausgewählte Algorithmen .115
5.1 Suchen in sortierten Folgen.115
5.1.1 Sequenzielle Suche.116
5.1.2 Binäre Suche.118
5.2 Sortieren.122
5.2.1 Sortieren: Grundbegriffe.122
5.2.2 Sortieren durch Einfügen_,.123
5.2.3 Sortieren durch Selektion.125
5.2.4 Sortieren durch Vertauschen: BubbleSort.127
5.2.5 Sortieren durch Mischen: MergeSort.129
5.2.6
5.2.7 Sortierverfahren im Vergleich.137
Inhaltsverzeichnis
6 Formale Algorithmenmodelle.141
6.1 Registermaschinen.141
6.2 Abstrakte Maschinen.150
6.3 Markov-Algorithmen.154
6.4 Church'sche These .160
6.5 Interpreter für formale Algorithmenmodelle in Java . 162
6.5.1
6.5.2 Registermaschine in Java .164
7 Eigenschaften von Algorithmen .171
7.1 Berechenbarkeit und Entscheidbarkeit.171
7.1.1 Existenz nichtberechenbarer Funktionen.172
7.1.2 Konkrete nichtberechenbare Funktionen.174
7.1.3 Das Halteproblem.176
7.1.4 Nichtentscheidbare Probleme.178
7.1.5 Post'sches Korrespondenzproblem.179
7.2 Korrektheit von Algorithmen.181
7.2.1 Relative Korrektheit.181
7.2.2 Korrektheit von imperativen Algorithmen.182
7.2.3 Korrektheitsbeweise für Anweisungstypen.185
7.2.4 Korrektheit imperativer Algorithmen an Beispielen . 187
7.2.5 Korrektheit applikativer Algorithmen.192
7.3 Komplexität.194
7.3.1 Motivierendes Beispiel.194
7.3.2 Asymptotische Analyse.195
7.3.3 Komplexitätsklassen.199
7.3.4 Analyse von Algorithmen.202
8 Entwurf von Algorithmen.205
8.1 Entwurfsprinzipien.205
8.1.1 Schrittweise Verfeinerung .205
8.1.2 Einsatz von Algorithmenmustern.206
8.1.3 Problemreduzierung durch Rekursion.206
8.2 Algorithmenmuster:
8.2.1 Greedy-Algorithmen am Beispiel .207
8.2.2
8.2.3 Verfeinerung der Suche nach billigster Kante.210
8.3 Rekursion: Divide-and-conquer.212
8.3.1 Das Prinzip »Teile und herrsche«.212
8.3.2 Beispiel: Spielpläne für Turniere.214
8.4 Rekursion:
8.4.1 Prinzip des
8.4.2 Beispiel: Das Acht-Damen-Problem .218
I xiv
8.5 Dynamische Programmierung.221
8.5.1 Das Rucksackproblem .222
8.5.2 Rekursive Lösung des Rucksackproblems.223
8.5.3 Prinzip der dynamischen Programmierung .224
9 Verteilte Berechnungen.227
9.1 Kommunizierende Prozesse.227
9.2 Modell der Petri-Netze.228
9.2.1 Definition von Petri-Netzen.228
9.2.2 Formalisierung von Petri-Netzen .232
9.2.3 Das Beispiel der fünf Philosophen .234
9.3 Programmieren nebenläufiger Abläufe.236
9.3.1 Koordinierte Prozesse.237
9.3.2 Programmieren mit Semaphoren.238
9.3.3 Philosophenproblem mit Semaphoren.240
9.3.4 Verklemmungsfreie Philosophen .242
9.4 Beispielrealisierung in Java.244
10 Literaturhinweise zum Teil
III
11 Abstrakte Datentypen .255
11.1 Signaturen und Algebren.256
11.2 Algebraische Spezifikation .258
11.2.1 Spezifikationen und Modelle .259
11.2.2 Termalgebra und Quotiententermalgebra.260
11.2.3 Probleme mit initialer Semantik.263
11.3 Beispiele für abstrakte Datentypen.264
11.3.1 Der Kellerspeicher (Stack).265
11.3.2 Beispiel für Kellernutzung.267
11.3.3 Die Warteschlange (Queue).271
11.4 Entwurf von Datentypen.272
12 Klassen, Schnittstellen und Objekte in Java.275
12.1 Grundzüge der Objektorientierung .275
12.2 Klassen und Objekte in Java.278
12.3 Vererbung.283
12.4 Abstrakte Klassen und Schnittstellen .290
12.5 Ausnahmen.293
12.6 Umsetzung abstrakter Datentypen.295
Inhaltsverzeichnis
13 Grundlegende Datenstrukturen.299
13.1 Stack und Queue als Datentypen.299
13.1.1 Implementierung des Stacks .303
13.1.2 Implementierung der Queue.304
13.1.3 Bewertung der Implementierungen.306
13.2 Verkettete Listen .307
13.3 Doppelt verkettete Listen .314
13.4 Das Iterator-Konzept.319
13.5
13.6 J2SE 5.0 und Generics.326
14 Bäume.329
14.1 Bäume: Begriffe und Konzepte .329
14.2 Binärer Baum: Datentyp und Basisalgorithmen.332
14.2.1 Der Datentyp »Binärer Baum«.332
14.2.2 Algorithmen zur Traversierung.337
14.3 Suchbäume .342
14.3.1 Suchen in Suchbäumen.343
14.3.2 Einfügen und Löschen.346
14.3.3 Komplexität der Operationen.351
14.4 Ausgeglichene Bäume.352
14.4.1 Rot-Schwarz-Bäume.353
14.4.2 AVL-Bäume.362
14.4.3 B-Bäume.370
14.5 Digitale Bäume.377
14.5.1
14.5.2 Patricia-Bäume .383
14.6 Praktische Nutzung von Bäumen.384
14.6.1 Sortieren mit Bäumen: HeapSort.385
14.6.2 Sets mit binären Suchbäumen.391
15 Hashverfahren .397
15.1 Grundprinzip des Hashens.397
15.2 Grundlagen und Verfahren.398
15.2.1 Hashfunktionen .398
15.2.2 Behandlung von Kollisionen.400
15.2.3 Aufwand beim Hashen.404
15.2.4 Hashen in Java.406
15.3 Dynamische Hashverfahren.410
15.3.1 Grundideen für dynamische Hashverfahren .411
15.3.2 Erweiterbares Hashen.414
15.3.3 Umsetzung des erweiterbaren Hashens.416
I xvi
16 Graphen.421
16.1 Arten von Graphen.421
16.1.1 Ungerichtete Graphen.422
16.1.2 Gerichtete Graphen.423
16.1.3 Gewichtete Graphen.424
16.2 Realisierung von Graphen.425
16.2.1 Knoten- und Kantenlisten .425
16.2.2 Adjazenzmatrix.426
16.2.3 Graphen als dynamische Datenstrukturen.426
16.2.4 Transformationen zwischen Darstellungen.427
16.2.5 Vergleich der Komplexität.428
16.2.6 Eine Java-Klasse für Graphen.428
16.3 Ausgewählte Graphenalgorithmen.430
16.3.1 Breitendurchlauf.431
16.3.2 Tiefendurchlauf.435
16.3.3 Zyklenfreiheit und topologisches Sortieren.439
16.4 Algorithmen auf gewichteten Graphen.441
16.4.1 Kürzeste Wege .442
16.4.2 Dijkstras Algorithmus .443
16.4.3 Kürzeste Wege mit negativen Kantengewichten . 447
16.4.4 Maximaler Durchf luss.450
16.4.5 Der Ford-Fulkerson-Algorithmus .452
16.5 Weitere Fragestellungen für Graphen.456
17 Suchen in Texten .459
17.1 Probleme der Worterkennung.459
17.2 Knuth-Morris-Pratt.461
17.3 Boyer-Moore.465
17.4
17.4.1 Reguläre Ausdrücke.471
17.4.2 Endliche Automaten .472
17.4.3 Java-Klassen für reguläre Ausdrücke.478
18 Literaturhinweise zum Teil
A
Abbildungsverzeichnis.487
Tabellenverzeichnis.493
Algorithmenverzeichnis.495
Beispielverzeichnis.497
Inhaltsverzeichnis xvii
Programmverzeichnis.499
Literaturverzeichnis.501
Index.505 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Saake, Gunter 1960- Sattler, Kai-Uwe 1968- |
author_GND | (DE-588)122164458 (DE-588)120420392 |
author_facet | Saake, Gunter 1960- Sattler, Kai-Uwe 1968- |
author_role | aut aut |
author_sort | Saake, Gunter 1960- |
author_variant | g s gs k u s kus |
building | Verbundindex |
bvnumber | BV021296421 |
classification_rvk | ST 130 ST 134 ST 230 ST 250 ST 265 |
classification_tum | DAT 530f |
ctrlnum | (OCoLC)179970932 (DE-599)BVBBV021296421 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 3., überarb. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV021296421</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20140123</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">060118s2006 gw d||| |||| 00||| ger d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3898643859</subfield><subfield code="9">3-89864-385-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)179970932</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV021296421</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">DE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-M347</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-863</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-29</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-2070s</subfield><subfield code="a">DE-703</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 130</subfield><subfield code="0">(DE-625)143588:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 134</subfield><subfield code="0">(DE-625)143590:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 265</subfield><subfield code="0">(DE-625)143634:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 530f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Saake, Gunter</subfield><subfield code="d">1960-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)122164458</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Algorithmen und Datenstrukturen</subfield><subfield code="b">eine Einführung mit Java</subfield><subfield code="c">Gunter Saake ; Kai-Uwe Sattler</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3., überarb. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt-Verl.</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVII, 512 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenstruktur</subfield><subfield code="0">(DE-588)4011146-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Algorithmus</subfield><subfield code="0">(DE-588)4001183-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Datenstruktur</subfield><subfield code="0">(DE-588)4011146-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Algorithmus</subfield><subfield code="0">(DE-588)4001183-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Algorithmus</subfield><subfield code="0">(DE-588)4001183-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Sattler, Kai-Uwe</subfield><subfield code="d">1968-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)120420392</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=2757806&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Klappentext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UBRegensburg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000002&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014617179</subfield></datafield></record></collection> |
genre | (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV021296421 |
illustrated | Illustrated |
index_date | 2024-07-02T13:51:20Z |
indexdate | 2024-10-29T09:02:40Z |
institution | BVB |
isbn | 3898643859 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014617179 |
oclc_num | 179970932 |
open_access_boolean | |
owner | DE-M347 DE-859 DE-355 DE-BY-UBR DE-29T DE-1051 DE-473 DE-BY-UBG DE-573 DE-91G DE-BY-TUM DE-858 DE-898 DE-BY-UBR DE-20 DE-863 DE-BY-FWS DE-739 DE-Aug4 DE-29 DE-523 DE-83 DE-526 DE-11 DE-188 DE-2070s DE-703 |
owner_facet | DE-M347 DE-859 DE-355 DE-BY-UBR DE-29T DE-1051 DE-473 DE-BY-UBG DE-573 DE-91G DE-BY-TUM DE-858 DE-898 DE-BY-UBR DE-20 DE-863 DE-BY-FWS DE-739 DE-Aug4 DE-29 DE-523 DE-83 DE-526 DE-11 DE-188 DE-2070s DE-703 |
physical | XVII, 512 S. graph. Darst. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | dpunkt-Verl. |
record_format | marc |
spelling | Saake, Gunter 1960- Verfasser (DE-588)122164458 aut Algorithmen und Datenstrukturen eine Einführung mit Java Gunter Saake ; Kai-Uwe Sattler 3., überarb. Aufl. Heidelberg dpunkt-Verl. 2006 XVII, 512 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Datenstruktur (DE-588)4011146-5 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Algorithmus (DE-588)4001183-5 gnd rswk-swf (DE-588)4123623-3 Lehrbuch gnd-content Datenstruktur (DE-588)4011146-5 s Algorithmus (DE-588)4001183-5 s Java Programmiersprache (DE-588)4401313-9 s 1\p DE-604 DE-604 Sattler, Kai-Uwe 1968- Verfasser (DE-588)120420392 aut text/html http://deposit.dnb.de/cgi-bin/dokserv?id=2757806&prov=M&dok_var=1&dok_ext=htm Inhaltstext Digitalisierung UB Regensburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Klappentext Digitalisierung UBRegensburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000002&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Saake, Gunter 1960- Sattler, Kai-Uwe 1968- Algorithmen und Datenstrukturen eine Einführung mit Java Datenstruktur (DE-588)4011146-5 gnd Java Programmiersprache (DE-588)4401313-9 gnd Algorithmus (DE-588)4001183-5 gnd |
subject_GND | (DE-588)4011146-5 (DE-588)4401313-9 (DE-588)4001183-5 (DE-588)4123623-3 |
title | Algorithmen und Datenstrukturen eine Einführung mit Java |
title_auth | Algorithmen und Datenstrukturen eine Einführung mit Java |
title_exact_search | Algorithmen und Datenstrukturen eine Einführung mit Java |
title_exact_search_txtP | Algorithmen und Datenstrukturen eine Einführung mit Java |
title_full | Algorithmen und Datenstrukturen eine Einführung mit Java Gunter Saake ; Kai-Uwe Sattler |
title_fullStr | Algorithmen und Datenstrukturen eine Einführung mit Java Gunter Saake ; Kai-Uwe Sattler |
title_full_unstemmed | Algorithmen und Datenstrukturen eine Einführung mit Java Gunter Saake ; Kai-Uwe Sattler |
title_short | Algorithmen und Datenstrukturen |
title_sort | algorithmen und datenstrukturen eine einfuhrung mit java |
title_sub | eine Einführung mit Java |
topic | Datenstruktur (DE-588)4011146-5 gnd Java Programmiersprache (DE-588)4401313-9 gnd Algorithmus (DE-588)4001183-5 gnd |
topic_facet | Datenstruktur Java Programmiersprache Algorithmus Lehrbuch |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=2757806&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014617179&sequence=000002&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT saakegunter algorithmenunddatenstruktureneineeinfuhrungmitjava AT sattlerkaiuwe algorithmenunddatenstruktureneineeinfuhrungmitjava |
Beschreibung
THWS Würzburg Zentralbibliothek Lesesaal
Signatur: |
1000 ST 134 S111(3) |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |
Exemplar 2 | ausleihbar Verfügbar Bestellen |
Exemplar 3 | ausleihbar Verfügbar Bestellen |
Exemplar 4 | ausleihbar Verfügbar Bestellen |
Exemplar 5 | ausleihbar Verfügbar Bestellen |
Exemplar 6 | ausleihbar Verfügbar Bestellen |
Exemplar 7 | ausleihbar Verfügbar Bestellen |
Exemplar 8 | ausleihbar Verfügbar Bestellen |
Exemplar 9 | ausleihbar Verfügbar Bestellen |