Als Programmierer nutzt man Klassen wie List, Stack, Hashtabellen, binäre Suchbäume und Graphen. Häufig möchte man aber wissen, wie diese umgesetzt werden, um zu entscheiden, welche Datenstruktur für den entsprechenden Anwendungszweck am ehesten geeignet ist, oder um eine Datenstruktur oder einen Algorithmus selbst zu programmieren, da er für einen bestimmten Anwendungsfall besser zu sein scheint.
In diesem Buch wird gezeigt, wie man Datenstrukturen und bekannte Algorithmen in C# selbst programmiert. Dieses Verständnis hilft auch bei der Verwendung bereits existierender Datenstrukturen in den .NET-Bibliotheken. Abhängig vom Anwendungsfall fällt es dann leichter zu entscheiden, welche Datenstruktur oder welcher Algorithmus für ein Problem am ehesten geeignet ist. Gleichzeitig wird auf weitergehende Sprachfeatures von C# eingegangen, die es erlauben, Algorithmen eleganter zu formulieren. Hierzu gehören neben der Verwendung generischer Datentypen die Erweiterung bestehender Klassen durch Erweiterungsmethoden, eine kurze Einführung in LINQ, das parallele Ausführen von Code über die Task Parallel Library u. a. Diese Themen werden als Exkurse behandelt und in den Aufgaben eingesetzt.
Die Buchreihe „KURZ&KNAPP“ führt den Leser möglichst schnell an die praktische Arbeit mit dem Thema heran. Dementsprechend werden theoretische Grundlagen nur so weit erläutert, wie sie für die praktische Entscheidung und Umsetzung notwendig sind. Als Übungen zur Verwendung der Datenstrukturen und Algorithmen werden praxisrelevante Beispiele wie z. B. ein einfacher Webserver, ein kleines Malprogramm, eine Rechtschreibüberprüfung, das Einfärben von Bereichen oder die Berechnung von kürzesten Wegen programmiert.
Nach einer Einführung zu den Begriffen Datentypen, Datenstrukturen und Klassen wird der Begriff Algorithmus erläutert. Danach wird der Frage nachgegangen, wie unterschiedliche Algorithmen, die das gleiche Problem lösen, auf ihre Leistungsfähigkeit hin verglichen werden können. Die Kapitel 2 bis 9 behandeln die bekanntesten Datenstrukturen, die auch z. T. im .NET-Namespace System.Collections anzufinden sind. In diesen Kapiteln werden selbstverständlich auch schon Algorithmen behandelt, wie das Einfügen und Suchen von Daten oder bei Graphen das Einfärben von Bereichen. Die Kapitel 10 und 11 beschäftigen sich mit Algorithmen wie der binären Suche, das wichtige Thema des Sortierens von Daten. Abschließend werden in Kapitel 12 Algorithmen zum Vergleichen von nicht exakt übereinstimmenden Zeichenketten vorgestellt.
Sönke Cordts
Sönke Cordts hat nach dem Studium der Wirtschaftsinformatik als Softwareentwickler, Projekt- und Entwicklungsleiter in verschiedenen Firmen im Raum Hamburg gearbeitet und beschäftigt sich seit den Anfängen mit den .NET-Technologien.
Seit 2008 ist Sönke Cordts Professor für Wirtschaftsinformatik mit den Schwerpunkten Softwareentwicklung, Datenbanken, und SAP ERP.
Aus den Bereichen Softwareentwicklung und Datenbanken sind diverse Publikationen von ihm erschienen.
Algorithmen Datenstrukturen C# List Stack Queue Hashtabellen Binary Tree Red-Black Tree Graphen Binäre Suche Effizienz der Datenstrukturen Sortieren String-Algorithmen