Gustav Pomberger Heinz Dobler Algorithmen und Datenstrukturen Eine systematische Einführung In die Programmierung L PEARSON Studium am trnpmt van Büslnn HÜ;IÜW, Engiund
Inhaltsverzeichnis Vorwort Zum Buch,.,. *-.>-^«.f.. Hinweise _..,,.. Handhab un^, des BmJia 15 17 In Einleitung 21 Teil I Algorithmen und Daten Strukturen - Grundlagen Kapitel 1 Grundbegriffe und elementare Konzepte 1.1 Beiauitie für AlguriÜmieii - Ein eiaier Blick auf den 3.2 Algaihhmus: Beg?i3und Eigenschaften.... 1.2. t llflßrlfl \.2.2 Eiyeuicjliailen 1.3 Elemcntaic Bpstandtciic von Aigorithmen 1.1.1 [Jatsnnh)nktp und ihm Uatpntypfin :;. 1.3.2 Aktionen (auch Anweisungen ^n?nannt],,, 1 A AlgnTlthnidn inil Ihr^n Srlinitlfitflljpn. 1.4.1 AlguiiÜwien: Dtkläiuliuri uiid Aufruf.,.. 1.4 2 Funktionsalgorithmcn. 27 32 36 47 fifl 57 1.5 1.4.4 Alfturilhmon und iluu Schnittstcrllon - Zusammen fassuns Zur SpezifikationsprobJemaTlk von Algorithmen. Dflrutfllliingsfrirnnin für AlgnrithmeD».;'. 1.6-1 Grafische DarsIcHünssfornien füi 1 Algoritluncn '. i\\ l.ö,j Zu^ainiittMifd^siiu^ der Algorithmen und Programme 1.7.1 Vnm Algorithmus mim 1.7.2 Möglichkeiten füi dio AusfüluuiXR eines Proaronims 1.7.3 Unterschiede zwischen Algorilhmup und Programm., 65 72 77 76 7Ü 79
Kapitel Z Struktur und systematischer Entwurf von Algorithmen 2.1 GnjndlescndeKoiiBUiddfcziirGeaLHUuiiHi der Struktur vnn Algorithmen.. 2.2 Unbflsnhranktfl AhlnnffttmktuT und Konsequenzen.,,._,,, 2.3 BescbjJinkEhr AblautilrLikliiran: TJ-DiagramTnkonBtmkle.,.,.. 3-3-\ TFdnslorinaticin unbeschrankter A1jUu fu~uk(ureu in D-Diagramms M 2.3.2 Transtornjötioii uach Kiiulli 2.3.3 Transformation nach Uiilenam, -, ^»,,..,-, 2.4 Erwcilerti? D DicLUiiuiHnikituiiLrukLe.',.,... '1.5 Struklurkinnplexität von AlgorithmflT) und strukturierte HTOgrammierung 2.5.1 Uuifkujj,arnelrikiin,...+, Kapitel 3 3,5,3 Metriken nach Halstoad 2.5,3 Sliuklurmelriken iirii:h 3.5.4 Syä\etiiahau\u-T Entwurf von l'rin^ip und Vrirgöhflnsmcdell, 2.6.1 Schi'iUwtiise Veifeitierung udprtop-dcwn-kntwurf 2.5.2 Annvnrfung des Prinrips de.- schrittweisen VcifriuüiuiiH 2.G.3 Ein VoE^irJiHUiiiHidell für dun Entwurf vnn Algorithmen Zueammeniassung, Grundkonzepte zur ModeNjerang von Datenobjfikten >& &'/* 3.1 ALruiiarp 4Jü1anih fivlfi unri -lypen,.. r 3 2 Strukturierte Datenobjekte und -typoa....,.,..-~-v.r, 1.2.1 PfllHfli\,.,,. 3.2.2 Verbünde - 2.2.2 f"ioßpnii(>«t6tellnng und Kombination von Feldern und Verbuudun L L.,, r.. r 3.2. Vflmfllztn oder dynarnisene Datenob}ektc und typen a.3.1 Zeiger und Zeigprriütnnlyppfi 3.3.2 Atlokiercn und Frciaeben vim J.4 VerkiittHlü Listpn 3.4.1 Von Feldern zu verkwlleltru LiaEen 3.4.2 Einfflrh-varkflJtfllp Liptfln 'A.5 3 G 3.7 3.4.3 Doppelt-vurkuUi-Lt LidLen und binäre S ^,5.a IMnMrbäüTne 3.S.3 Binäre Suntib^iimB,,., Datedkapselung und abstrakte- DpItJi&trukluren - 3.B.1 Kpllerppnirhpr {stark) als flhslrahe U&teDStruktUF AbstrakteDatemvpen ^.., 3.7.1 WartqB^hisnga [quette] als abstrakter Datentyp... 87 30 94 95 9ß y» 101 ] n2 103 1OB 1EI7 lütt 109 HU 11B 12U 125 12B l.lfl 141 141 14fi 149 14S 1Ö2 JP3 184 167 171 174 17fi 177
Kapitel 4 Rekursive Algorithmen 1S7 4.1 Begritt"Rckursion und Siaiidanlbtispiele.. X t,;..>:.;.7-:.;,.;*:,... 190 4.1.1 l'akultati'het**ohnung iyi 4.1.2 Bildung der Fibmiiitrc:!-Zahlen J94 4.1.3 Ackejiiiann-FupkÜijU Iflfl 4,2 4,3 4.4 4,5 4.1.4 Primzahlpnlaet 2UU Ausfüliruujj, uudteriuinieruiigrekuwivhr Algorilhmqn 202 Vorgehen beim Entwurf rckmsivej AlfcUJiihiiLUn 207 KefcurBi'nn und Itpralinn *...-...* 211 4.4 1 VeiwumÜsdiüfl vun Rekuraiuu und Iteration^ ^.»^j.*,,»*,»,... %\ l 4.4 2 limrekiirsivieruüg. VonKekursionzuIteraiioa l i-.,v4 -,,,. 'ivi 4.4r^l Rekurs ivierung: Vun IlemEion zu Rftkursinn».. *.++.,.., 217 Rekureive Algorithmen auf rckutsiven DatcastrukLurnij 21ö 4.5.1 Rpkursiva Algorithmen auf vm-fcefjeten Matea 310 4.5 r Rukuiüiv«Aljttn'l"ineu aüfbinüleu (SucJi')Bäunien 220 Zusammenfassung..,,,.,.,,. 225 226 Kapitel 5 Laufzeitkomplexitat von Algorithmen zzy 5.1 Kumplexilüt von Aignrithmfin: riflgnffe und Abgrenzung 231 5-2 LaufzdtiUtSüiiiiK und PfO^riiniiuproril 234 5.3 Keinanalyse und Lautzeilbcrechnimpi.._., 237 5.4 (imhanalysp 242 5.5 A&yiiiplüliscäi^ LHuktilkouiplexital und O-Notalinn 249 Teil II Elementare Algorithmen für Standard- ; aufgaben - eine Auswahl 263 Kapitel 6 Suchalgorithmen 0,1 Anwendungsgahifitp und Anforjäsningfin _ 0.2 Sequenzielle Suche 6.2.1 Spqupnziillp Suche In Feldern,, 6.2.2 Sequentielle Suihe in verketteten Listen,.. - 6.2.3 Sequenzielle Suche in Biuürbäunicn 6.2.4 Ssqusnzinlle Siirhp in bpkphigen Uehältern. mittels Itcratorcn 0,2.5 LuufZtfilkunipltTUtül der aequen^ii^llen Suthn ß,3 Hlnäre Suthe 6.3.1 Binarfi Surha in snrtiprlpn 1'slderti 6,3-2 BijiüJt; SULIIÜ in biuaien Suulibuuinen 6.3.3 LaufMiTkomplejäläl, der binären Suche,-,,,, 267 27$ 273 274 270 27H 27Ü
ti.4 Sucht) -.,, - 262. 0,4.1 Grundprinzip des llashing.,..., 2K2 P.4 2 Kash-Kiinkluinfin und Kollisionun 2QA b.4.3 Külii&ioüsbfjhaiidlmifi duith Verkettung 2fl7 6.4.4 Kollisionsbehandlitng durch nffene A^rflfiRiflmns 2HQ 294 Aufgabtrii, T,,,,, 295 Kapitel 7 l/\ 7.2 7.3 7.4 1 7 7.0 Sortieralgorithmen Anwendungsgebiet!? und Anforderungen Aii&wahlsortleren,,,,-,,,. Einfügeaurliertui Shcll-Sortieren AiiElaiifirhnnrtiflrt*n {Buhhh^scirl) und Comhsurl aus 306 3O9 315 ± 321 Hcap-Datcnslruktui und /feap-snfllflt»*n- 32H 7.7.1 Wtiip-DüLenilruktuc t 328 77.2 Hcap-Snitieren a T 14 Writa Sortinrvarfahrsn 337 Prubleinknnijilirxiuit 340 Zusammenfassung,,,, 142 Aufgaben - ;i44 Kapitel 8 ft.2 6.3 (1.4 Algorithmen zur Erzeugung von p. Umgriffe und Anforderungen. uih Gedächtnis Methoden ziu Erzengvuig von Mfl-thnHun?.\ 34Ü 348 355 Tests zur Prüfung 7.uxammnn Aufgaben. von /.ufulls^ahlhnfolgan "Jb2 305 Kapitel 9 Exhätistlonsaigorithmen 360 y.l AchL- bzw. n-damen-problera -,., 372 y.2 Allgflmsinp l-'rnhlmnfdrmiimpnjng uml grundlegender LüamigshuiüaLZ... 37Ö H.l Variunlen VÜII BuLklnickiii^-Au^abcn und LÖ&un^cn 363 0.4 Standaidproblemstellungen und beinifitier-h«algnrithm*+n 3ÖH Aufgaben
Kapitel 10 Algorithmen auf Zeichen ketten 399 113.3 RtrprüüL'clidLitJU vun uild üleint?u[nre Opemliunen aurzticherikellen 4U1 10 2 Problem der Mustcrsuche in. Zcidiciiketten ipatiecn Mutcliiuii) 4UB 10.3 Elementare MuHtflraurh-Verfahren _ -507 10.4 Musters null-verfuhren uaih Knu(h, Morris und Prall 411 10.ü Mu5ter5Uch-Verlahron nach Boyor und Moore 416 10.6 MuRtfirsiinh-Vflrfahrpn narh Kahtn nnd Karp,...*,, 421 10.7 Ausblick: EchU- Muster, lekufätt Ausdrucke und endliche Automaten... 425 /ueaminenfaeeung 427 Aufgaben ^... ^... ^. 42fl Teil III Elementare Programmlerparadigmen 431 Kapitel 11 Aufgaben- und moduäorientierte Programmierung 4ij tl,1 l^nrwurf und ItfgAnArhAfran flufgahfinfirinniifirifir fiyiifiniarrrbitokliu'en... 435 11.2 Beispiel ur Voitfulieiisweise bei aüfgüböutiriöiidartec Sysleraentwicklang 439 11.3 Mnilulkiinntrukt - Begriff und Eiganichnfl+m,, - -., 447 11.4 Anwendung des MudiElkunslrukls > 4ä1 Zusammenlassung 46D,, _ 461 Kapitel 12 Daten- und transformationsonentierte Programmierung 40a 12.1 Losungsanaatz hu und Aufbau von Systcmurchilektuctii 15.2 [Irammailkfin?nr l^rhrplhnnß d&i y vun Da.leii»lrünien.,, ITI,..,. FT,H. L,_,» 4fifl 12.3 Konstruktion der Analysaiorkomponciitcn,*,, _,,... 474 12.4 AtlrihutinrtFi Urammatikpn 7iir Hpflrhrpihnng vnn TiänsfuiiiibilitfUipiLiz^dHefi 4Hä 12.5 AJgDtithmi5cbc Inlcrpretation attiibuticrler Crnnunatiken 430 12.fi Elini^I? von ["Inmpilflr-Cflnurfllnrnn 49ü 12./.VOIEOIIBIISI* triitr zur äyältiuüli^iijuuieiitwiiüiuiw dueeiiurieiiiierler PrngraTnmuysrerne 4^B 7A IJ.H rii 1 n F-II fpivui J nj..»..., äüh Aurgaben -.. -,,,-..-,, 501 Kapitel IS Objektorientierte Programmierung 5ft2 13.1 Zieäder objektorieatiertenpi'üftrquuiücruus -. r-..,-.,--.r 5ÜÖ 532 UbjpIdeimdKlafififln r. 5Q7 13.3 Vererbung., t.._..., H13 13.4 Polymorphismus. Klasscngaiantie und
13r3 Siäüscne und dyiittuiibdil 1 Bindung,. r, 519 13.6 Abstrakte Klassen, abstrakte Methoden unrt luaseenbibhofheken. 521 ift.7 SvfilnmatiT.hflr Iftitwnrf objflktoriflnliertpr Systemarchilekturön 52a Zuätiiumciif&ssuiifi 535 Aulgaben.,.,,,,..., R33 Literaturverzeichnis b$7 Namen sregi^ter 547 Register 549