Algorithmen und Datenstrukturen

Praktische Übungen für die Vorlesungen und Praktika

€49,99 (Print)

inkl. MwSt., ggf. zzgl. Versandkosten

sofort lieferbar
€49,99 (PDF)

ready to ship

€49,99 (ePub)

ready to ship

Beschreibung
Algorithmen und Datenstrukturen
- Das Buch stellt alle für das Informatik-Studium relevanten Themenbereiche verständlich dar.
- Beginnend mit einfachsten Algorithmen, wird die Komplexität nach und nach gesteigert.
- Für jeden Algorithmus wird ein lauffähiges Programm inklusive Programmablaufplan vorgestellt, das sich auch direkt in den Programmierpraktika einsetzen lässt.
- Mit Programmbeispielen, Programmablaufplänen, Diagrammen, Tabellen, Übungsaufgaben, Praxistipps
- Quellcode zum Buch unter plus.hanser-fachbuch.de
- Ihr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten Buches

Sie beginnen gerade das erste Semester im Studiengang Informatik und haben deshalb die Vorlesungen Algorithmen und Datenstrukturen 1 und 2 sowie Programmierung 1 und 2 belegt?

Dieses Buch hilft Ihnen, die nötigen Erfahrungen und Fähigkeiten zu erwerben, um stressfrei durch Praktika und Prüfungen zu kommen.
Die ersten drei Kapitel wenden sich ausschließlich an Einsteiger mit grundlegenden Programmierkenntnissen in C. Von den restlichen Kapiteln profitieren auch im Studium fortgeschrittene Programmierer, die sich an komplexere Themen wie verkettete Listen, Bäume, Graphen, Sortieralgorithmen, neuronale Netze, Kryptographische Algorithmen oder Graphen heranwagen.

Das Buch bietet einen einfachen Einstieg in das komplexe Thema Algorithmen und Datenstrukturen. Anstatt Comic- oder Pseudocode-Stil wird stets ausführbarer Quellcode in C, C++ oder Java verwendet.

Dabei wird immer die Programmiersprache gewählt, die auch in den Programmierpraktika oder Vorlesungen eines Informatikstudiums für den betreffenden Algorithmus zum Einsatz kommt.

AUS DEM INHALT //
Berechenbarkeit/Basisalgorithmen/Rekursive Algorithmen/Verkettete Listen/Bäume/Such- und Sortierverfahren/Signalverarbeitung/Grafische Bildverarbeitung/Simulation neuronaler Netze/Kryptographische Algorithmen/Graphen/Lösung der Übungsaufgaben
Algorithmen und Datenstrukturen
- Das Buch stellt alle für das Informatik-Studium relevanten Themenbereiche verständlich dar.
- Beginnend mit einfachsten Algorithmen, wird die Komplexität nach und nach gesteigert.
- Für jeden Algorithmus wird ein lauffähiges Programm inklusive Programmablaufplan vorgestellt, das sich auch direkt in den Programmierpraktika einsetzen lässt.
- Mit Programmbeispielen, Programmablaufplänen, Diagrammen, Tabellen, Übungsaufgaben, Praxistipps
- Quellcode zum Buch unter plus.hanser-fachbuch.de
- Ihr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten Buches

Sie beginnen gerade das erste Semester im Studiengang Informatik und haben deshalb die Vorlesungen Algorithmen und Datenstrukturen 1 und 2 sowie Programmierung 1 und 2 belegt?

Dieses Buch hilft Ihnen, die nötigen Erfahrungen und Fähigkeiten zu erwerben, um stressfrei durch Praktika und Prüfungen zu kommen.
Die ersten drei Kapitel wenden sich ausschließlich an Einsteiger mit grundlegenden Programmierkenntnissen in C. Von den restlichen Kapiteln profitieren auch im Studium fortgeschrittene Programmierer, die sich an komplexere Themen wie verkettete Listen, Bäume, Graphen, Sortieralgorithmen, neuronale Netze, Kryptographische Algorithmen oder Graphen heranwagen.

Das Buch bietet einen einfachen Einstieg in das komplexe Thema Algorithmen und Datenstrukturen. Anstatt Comic- oder Pseudocode-Stil wird stets ausführbarer Quellcode in C, C++ oder Java verwendet.

Dabei wird immer die Programmiersprache gewählt, die auch in den Programmierpraktika oder Vorlesungen eines Informatikstudiums für den betreffenden Algorithmus zum Einsatz kommt.

AUS DEM INHALT //
Berechenbarkeit/Basisalgorithmen/Rekursive Algorithmen/Verkettete Listen/Bäume/Such- und Sortierverfahren/Signalverarbeitung/Grafische Bildverarbeitung/Simulation neuronaler Netze/Kryptographische Algorithmen/Graphen/Lösung der Übungsaufgaben
Customer evaluation for "Algorithmen und Datenstrukturen"
(Geprüfte Bewertung)
3 Jun 2023

Wissenschaft light

Um es gleich vorweg zu nehmen: Der Autor hat es nicht so sehr mit Definitionen, nicht mit wissenschaftlichem Anspruch, nicht mit Exaktheit und nimmt es leider auch mit Orthografie, lexikalischer Korrektheit und Interpunktion nicht so genau. Mag es einerseits an manchen Stellen dann wie ein Lapsus aussehen (den Leser erschreckende "Terrabytes" anstelle korrekter "Terabytes", "Kreuz-Ass" anstelle des korrekten "Kreuz-As"), so sind andererseits auch echte Stilblüten enthalten ("...sind EIN verschiedenes Paar Schuhe", und der "Zufallsgenerator führt auswendige Operationen durch."). Das stört erheblich den Lesefluß. Ein echtes Lektorat hätte dem Buch gut getan. Eine Zumutung wird es jedoch dann für Zielgruppe der Erstsemester, die - ohne nähere Erklärung - eine Funktion "Pasre()" (anstelle von "Parse()") vorgesetzt bekommen. Der spätere Verweis auf den C64 hingegen sorgt bei Erstsemestern wohl eher für Unverständnis; zielführend sind des Autors Anmerkungen zu ihm keinesfalls. Dennoch scheint sich der Autor stark rückwärtsgerichtet zu orientieren; anders kann ich mir den Passus mit den "Hinweisen auf Verwendung älterer Windows-Versionen" nicht erklären, wonach wegen fehlender Hyperthreading Technologie auf Windows XP und Vista zu verzichten sei; Windows 7 sei hierfür die bessere Lösung. Im Jahre des Herrn 2022 noch ein abgekündigtes Betriebssystem zu empfehlen: da verschlägt es mir als Fachmann für IT-Sicherheit glatt die Sprache!
Um aus den beigefügten Programmbeispielen und Algorithmen wirklichen Nutzen ziehen zu können (und diesen Anspruch hat der Autor; die meisten seiner vorgestellten Algorithmen sollten für spätere Wiederverwendbarkeit in des Erstsemesters Repository aufgenommen werden), sollten sie selbstverständlich fehlerfrei, modular aufgebaut und damit wiederverwendbar sein, gut lesbar und mit zielführenden Kommentaren versehen sein. Allerdings leiden sie alle durchgehend daran, dass der Autor die einfachsten Grundsätze zur sauberen Formatierung und Übersichtlichkeit seines Codes beharrlich ignoriert.
Darüberhinaus sind die Listings nicht fehlerfrei (Bsp. im Ringtausch.c: printf("a=%d,b=%d\n") - leider ohne die auszugebenden Parameter! An anderer Stelle wird dann auch schonmal das einen Kommentar einleitende "//" vergessen. Überhaupt, die Listings: um sie auf einem Raspi zum Laufen zu kriegen, mussten alle Java-Listings nach UTF-8 umkodiert (!) werden. Und auch hier lässt es der Autor erneut an Genauigkeit mangeln: etliche Listings seien "in C" angegeben, lassen sich jedoch ohne Änderung nur via "g++" compilieren. Da hilft es auch nicht, wenn er mehrmals in Fußnoten auf ein weiteres seiner Bücher verweist.
Es gibt mittlerweile so viele hervorragende Bücher über das Schreiben wiederverwendbaren Codes mit Regeln, die Sinnverstehen und Lesbarkeit kolportieren; allein, der Autor scheint sie nicht zu kennen oder schlicht zu ignorieren.
Was mir darüber hinaus - gerade für Erstsemester - gefehlt hat, waren die Betrachtungen zur Aufwandsabschätzung der besprochenen Sortier- und Suchbaum-Algorithmen jeweils im best-, worst- und average case, nachdem O(n) eingangs gut erklärt wurde. Unerwähnt hingegen bleiben ebenfalls wichtige Begriffe und Vokabeln, die unmittelbar mit den eingeführten Themen zusammenhängen: PreCondition, Invariante, Einser-/Zweierkomplement, Generische Liste, Iterator, balancierter Baum, Traversieren: nichts davon wird an den passenden Stellen erwähnt.
Das Buch hinterlässt bei mir einen sperrigen, lieblos gemachten Eindruck, das nur wegen seiner Themenvielfalt und den dahinter stehenden Ideen noch gerade eben noch 2 von 10 Punkten erhält; einen weiteren Punkt gibt's für die LongInt-Routinen und deren Erklärungen, die für einen angehenden Krypto-Analytiker von echtem praktischen Nutzen sind. Die vielen Fehler und ausgelassenen Definitionen hemmen den Lesefluss jedoch erheblich. Aber es ist nunmal auch nicht jeder ein Donald Knuth oder Niklaus Wirth.

Admin 5 Jun 2023

Sehr geehrter Herr Eilers, vielen Dank für Ihr Feedback, das wir gern an das Lektorat und an den Autor weitergeben. 

(Geprüfte Bewertung)
30 May 2023

Das Buch „Algorithmen und Datenstrukturen – Praktische Übungen für die Vorlesungen und Praktika“ von René Krooß aus dem Hanser Verlag hat mich vor allem wegen seines Hinweises auf „Praktische Übungen für die Vorlesungen und Praktika“ neugierig gemacht.

Das Buch „Algorithmen und Datenstrukturen – Praktische Übungen für die Vorlesungen und Praktika“ von René Krooß aus dem Hanser Verlag hat mich vor allem wegen seines Hinweises auf „Praktische Übungen für die Vorlesungen und Praktika“ neugierig gemacht. Neben den beiden Büchern „Grundkurs C“ (3., aktualisierte und überarbeitete Auflage 2020) und „C von A bis Z“ (5., aktualisierte Auflage 2023) ist sein Buch zum Thema „Algorithmen und Datenstrukturen“ sein drittes Werk im Bereich Programmierung. Durch seine Tätigkeit an der FH Südwestfalen sind ihm nicht nur die Programmieranforderungen an Studierende bekannt, sondern auch die Herausforderungen, die jede(r) Student:in in diesem Bereich meistern muss. Das Buch ist in drei Teile untergliedert: Teil I: Grundlagen Teil II: Fortgeschrittene Themen und Teil III: Weiterführende Themen Jeder Teil ist wiederum in mehrere Kapitel untergliedert und schließt mit Übungen ab. Sollte der Leser bei Lösen der Aufgabe ins Stocken geraten, findet er eine Hilfestellung im Anhang des Buches. Im Teil I Grundlagen werden die Themen Basisalgorithmen und Rekursion behandelt. Besonders möchte ich hier hervorheben, dass der Autor bereits zu Beginn klar formuliert, welche Abgrenzungen er vornimmt und welcher Wissensstand als bekannt voraussetzt wird. So ist auf Seite 23 zu lesen: „Dieses Buch ist kein Programmierhandbuch, sondern setzt voraus, dass Sie an den entsprechenden Programmierpraktika teilnehmen, sich mit der Verwendung von Zeigern und indirekter Adressierung auskennen und ferner in der Lage sind, PAPs (Programmablaufpläne) zu lesen.“ Die grundlegenden Algorithmen werden anhand der Programmiersprache C behandelt. Zu den ausführlichen Erklärungen wird jeweils ein Listing mitgeben. Ferner ist zu den Listings, die auch über die Verlagsseite abgerufen werden können, selbst zu sagen, dass diese nur bei gleicher Entwicklungsumgebung wie der Autor sie aufgesetzt hat, sofort lauffähig sind. In meiner eigenen Umgebung musste ich zum Teil Anpassungen in den Listings vornehmen. Neben den Basisalgorithmen werden im Grundlagenteil auch rekursive Algorithmen behandelt. Hier greift der Autor auf die Programmiersprache Java zurück. Für Leser, die gerade dabei sind, eine Programmiersprache in seiner gesamten Tiefe kennenzulernen, kann der Wechsel zwischen unterschiedlichen Sprachen vor allem zu Beginn eine Herausforderung sein. Das Kapitel schließt mit einer kurzen Betrachtungsweise ab, wann eine rekursive gegenüber einer iterativen Programmumsetzung sinnvoll sein kann. Im Teil II: Fortgeschrittene Themen werden verkettete Listen, Bäume sowie Such- und Sortierverfahren behandelt. Die detaillierte Einführung in verkettete Listen erfolgt zunächst anhand von C++, später in einem separaten Unterkapitel anhand von Java. Wie auch in den vorhergehenden Kapiteln wird mit einer Übung abgeschlossen. Überraschend war für mich, dass es sich hier nicht Programmieraufgaben, sondern wie bereits im Kapitel zur Rekursion, um Verständnisfragen handelte. Die Kapitelstruktur zum Thema Bäume ist analog zum Thema verkettete Listen strukturiert. Abgerundet wird der Teil II mit der Darlegung unterschiedlicher Such- und Sortierverfahren und schließt somit den Wissensbereich ab, den ein(e) Studierende(r) als Werkzeugkasten wissen sollte. Signalverarbeitung, grafische Bildverarbeitung, Simulation neuronaler Netze, kryptographische Algorithmen und Graphen sind die Themenauswahl für Teil III: Weiterführende Themen. Die Auswahl ist hier von den Wahlpflichtfächern des Autors beeinflusst und kann daher als optionaler Teil betrachtet werden, der nur im weitesten Sinne zum Titel des Buches „Algorithmen und Datenstrukturen“ in Verbindung steht. Wie bereits zuvor, behält der Autor auch in diesem Teil seine Herangehensweise bei: er führt mit realen Beispielen in das Warum des Algorithmus ein, trägt mit seiner klaren und verständlichen Sprache zur Sachverhaltserläuterung bei und schließt diese mit einem Listing ab. Zusammenfassend kann festgehalten werden, dass mich das Buch als selbst Studierende am Campus 42 durch seine klare Struktur und verständliche Heranführung an die Fragestellungen angesprochen hat. Der Autor führt den Leser Schritt für Schritt bis zur finalen Umsetzung durch die einzelnen Überlegungen. Die teils sehr detaillierte Beschreibung der Programmbeispiele und die Ausführungen zu bestimmten Stolperfallen in einzelnen Programmiersprachen erinnern an manchen Stellen eher an ein How to als an eine generelle Einführung in die Thematik der Datenstrukturen. Dennoch wird durch das Buch ein Grundstock zum Thema Datenstrukturen für den interessierten Leser gelegt.

(Geprüfte Bewertung)
28 May 2023

Gute praktische Herangehensweise mit mehr Potential

Das Buch "Algorithmen und Datenstrukturen" reiht sich ein in eine sehr große Menge an bereits erhältlichen Büchern zu diesem Thema. Der Ansatz dieses Buches ist es, das Thema auf möglichst leicht verdauliche und vor allem praktische Weise darzustellen, statt sich in theoretischen Betrachtungen zu verlieren.

Entsprechend ist der Sprachstil auch eher einfach gehalten. Während ich mich mit dem trockenen Stil so mancher akademischer Bücher nicht anfreunden kann, bin ich allerdings auch mit diesem Stil nicht so recht warm geworden.

Als problematisch erachte ich allerdings, dass schon das erste echte Listing 2.1 (Ringtausch) so nicht funktionieren kann und auch die printf()-Anweisung unvollständig ist. Das an der Stelle bereits so früh mit Zeigern hantiert wird, könnte für Personen, die noch nicht mit C gearbeitet haben, problematisch sein. Ich bin mir nicht sicher, ob man sich damit an dieser Stelle mit der Thematik einen Gefallen tut.

Was mir noch stilistisch sehr missfallen hat war, dass die Listings zum einen (insb. in der eBook-Version) kein Syntax-Highlighting enthielten und zum anderen die Code-Formatierung deutlich schöner hätte gestaltet werden können. Der Code enthielt durchgängig sehr wenig Leerraum, mehrfache Anweisungen in einer Zeile, ungünstige oder zu kurze Variablenbezeichner, nicht einheitliche Groß-/Kleinschreibung, etc. Das macht den Code wirklich sehr mühsam zu lesen. Die Kommentare die es gibt, empfinde ich häufig als überflüssig; eher fehlen mitunter an den entscheidenden Stellen der Algorithmen Kommentare. In Programmen, in denen C++ verwendet wird, empfände ich es als besser, auch mit C++-Mitteln zu arbeiten, statt letztlich wieder C-Konstrukte zu nehmen (bspw. stdio.h statt iostream oder die Verwendung von char-Arrays anstelle von C++-Strings).

Code-Listings, die mehrere Seiten umfassen finde problematisch. Ich verstehe, dass damit auch mal ein umfassendes Programm dargestellt werden soll. Aber ich habe Zweifel, ob man das noch gut in Buchform nachvollziehen kann. Besser könnte es sein, einzelne Code-Abschnitte (max. eine halbe Seite) zu diskutieren und dabei die Zeilennummerierung weiter zu verwenden. Die vollständigen Codes gibt es ja dann auch zum Download.

Auch die Abbildung (z.B. Bild 2.1) hätten besser aufbereitet sein können und sind nur schlecht zu lesen. Grundsätzlich hätte ich es als geschickter empfunden, wenn man zuerst mit einem Beispiel die grundsätzliche Problematik und Herangehensweise erläutert hätte (gerne auch mit mehr Grafiken) und dann erst den Code dazu geschrieben hätte. Das böte auf jeden Fall Verbesserungspotenzial für eine zweite Auflage des Buchs.

Die Themenauswahl ist gelungen und ich denke auch, dass die praktische Herangehensweise für viele eine willkommene Abwechslung bieten wird zu häufig sehr trockenen Büchern in diesem Bereich.

Admin 5 Jun 2023

Vielen Dank für Ihr Feedback. Wir geben Ihre Anmerkungen an das Lektorat und den Autor weiter!

(Geprüfte Bewertung)
25 May 2023

Sehr umfangreich und schwer zu lesen

Der Umfang der beschriebenen Algorithmen ist beachtlich hoch. Der Lesefluss wird in textlastigen Passagen, wie zum Beispiel gerade am Anfang mit den Touringmaschinen stark gebremst. Die Progammbeispiele sind dagegen schön kurz gehalten und dadurch leicht lesbar. Da es sich nicht um ein Lehrbuch für C-Programierung oder Java handelt, stellen kleine Fehler in Beispielen keine echte Beeinträchtigung dar.
Unterm Strich gibt es eine Fülle von wertvollen Basisalgorithmen. In meinem Fall muss die Alltags-Programmierung für Swift(UI) passen, was den Einsatz der C-Beispiele etwas erschwert.

(Geprüfte Bewertung)
25 May 2023

Gute Themenauswahl, aber nicht fehlerfrei.

Algorithmen und Datenstrukturen von Rene Krooß. Hanser-Verlag, 1. Auflage, 2022
Das Buch richtet sich zumindest in den ersten Kapiteln an Studienanfänger und bietet eine praxisnahe und verständliche Darstellung der wichtigsten Algorithmen und Datenstrukturen. Dabei ist die Auswahl auf der Höhe der Zeit, z.B. werden auch die Grundlagen zu Blockchains kurz erklärt. Da die in C, C++ oder Java geschriebenen Beispielprogramme als Zusatzmaterial im Internet zur Verfügung stehen, kann man die Funktionsweise der Algorithmen direkt nachvollziehen.
Vom Aufbau und von der Themenauswahl ein sehr gelungenes Buch. Leider merkt man ihm seinen Charakter als Erstauflage an. Es enthält einige Fehler, missverständliche Formulierungen und Lesefluss-Bremser.
So wird für die Anzahl der benötigten Lösungsschritte beim Beispiel "Türme von Hanoi" eine falsche und etwas verwirrende Formel angegeben: "n = 2 hoch(n-1)", richtig wäre: "s = (2 hoch n)-1".
Anderes Beispiel zu verketteten Listen auf Seite 122 letzter Satz: "Die folgende if-Anweisung fügt nun ein Element in die Liste ein, wenn dies nicht am Ende angehängt werden darf:", besser verständlich wäre: "Die folgende if-Anweisung fügt nun ein Element zwischen zwei bereits vorhandenen Elementen ein."
Die Erklärungen nach den Listings sind gut, da man aber immer zwischen dem Listing und dem Text hin- und herblättern (Buch), beziehungsweise scrollen muss (EBook), wird man etwas ausgebremst. Mein Verbesserungsvorschlag wäre hier die Listings in einzelne Blöcke bei fortlaufender Zeilennummerierung aufzuteilen und die passenden Erklärungsteile jeweils direkt darunter zu schreiben.
Auch beschränkt der Autor die Anzahl der Abbildungen auf ein absolutes Minimum.
Wer über diese Schwächen der Erstauflage hinwegsehen kann und bereit ist im Zweifelsfall das Internet zur Überprüfung von Unklarheiten heranzuziehen, erhält ein gutes Basiswerk zum Thema Algorithmen und Datenstrukturen.

Admin 5 Jun 2023

Vielen Dank für Ihr Feedback. Wir leiten Ihre Anmerkungen an das Lektorat und den Autor weiter. 

(Geprüfte Bewertung)
19 Apr 2023

Sehr viele Algorithmen - vielleicht zu viele

Das Buch enthält eine große Menge von Algorithmen aus ganz verschiedenen Bereichen. Zunächst die klassischen Such- und Sortieralgorithmen, Listen, Bäume usw. Es werden aber auch neuronale Netze, Krypto-Algorithmen, Bildverarbeitung, digitale Signalverarbeitung, Petri-Netze u.a. behandelt. Das ist etwas zwiespältig, weil man zu jedem dieser Themen ein eigenes Buch schreiben könnte. Es kann aber als allererste Einführung dienen. Eine weitere Spezialität des Buches ist dass es für die meisten Algorithmen Code-Beispiele gibt. Das mag eine gute Illustration sein. Mir persönlich wäre die Beschreibung der Algorithmen-Ideen ausreichend. In der Praxis werden sowieso viele verschiedenene Programmiersprachen verwendet.

Bei der Beschreibung von Big-Endian und Little-Endian leistet sich der Autor einen schweren Fehler. Motorola-Prozessoren sind Big-Endian, während PCs Little-Endian sind. Im Buch steht es genau verkehrt herum. Das gibt bei der Bewertung einen Stern Abzug.

Admin 3 May 2023

Danke für Ihre Anregung! Auf Seite 82 wird big/little endian tatsächlich falsch herum zugeordnet und auf Seite 86 falsch verwendet. Eine ähnliche Erklärung wie im Kasten von Seite 82 findet sich auf Seite 278, wo die Zuordnung allerdings richtig ist.

Bei Motorola-Prozessoren steht das LSB (least significant byte, niederwertigstes Byte) an der höchsten Speicheradresse, das MSB (most significant byte, höchstwertigstes Byte) an der niedrigsten Adresse - nur das ist eben big endian.

Kurz gesagt: Motorola ist big endian, Intel ist little endian.

Die Bezeichnungen stammen aus Gullivers Reisen: big endians sind Leute, die die Eier an der Breitseite aufklopfen, little endians diejenigen, die die Eier von der Spitze her schälen.

Write an evaluation
Evaluations will be activated after verification.

The fields marked with * are required.

Autor(en)

René Krooß hat Informatik an der FH Dortmund studiert. Sein Wissen gibt er seit mehr als zehn Jahren als Trainer bei Kapiert und an der FH Südwestfalen in Hagen in Form von Computerkursen und Praktika an Schüler und Studierende weiter. Er ist selbstständig und als freier Buchautor tätig.

René Krooß hat Informatik an der FH Dortmund studiert. Sein Wissen gibt er seit mehr als zehn Jahren als Trainer bei Kapiert und an der FH Südwestfalen in Hagen in Form von Computerkursen und Praktika an Schüler und Studierende weiter. Er ist selbstständig und als freier Buchautor tätig.

Cover Downloads

You may use the cover files free of charge to promote the book.

Print Cover

E-Book Cover

You may use the cover files free of charge to promote the book.

Print Cover

E-Book Cover

All books by this author Customers also viewed
Customers also viewed