“Data Structures and Algorithms with Object-Oriented Design Patterns in C#” is a free web book by Bruno R. Preiss. This book is about the fundamentals of data structures and algorithms–the basic elements from which large and complex software artifacts are built.
To develop a solid understanding of a data structure requires three things: First, you must learn how the information is arranged in the memory of the computer. Second, you must become familiar with the algorithms for manipulating the information contained in the data structure. And third, you must understand the performance characteristics of the data structure so that when called upon to select a suitable data structure for a particular application, you are able to make an appropriate decision.
This book also illustrates object-oriented design and it promotes the use of common, object-oriented design patterns. The algorithms and data structures in the book are presented in the C# programming language.
Table of Contents
- Algorithm Analysis
- Asymptotic Notation
- Foundational Data Structures
- Data Types and Abstraction
- Stacks, Queues, and Deques
- Ordered Lists and Sorted Lists
- Hashing, Hash Tables, and Scatter Tables
- Search Trees
- Heaps and Priority Queues
- Sets, Multisets, and Partitions
- Garbage Collection and the Other Kind of Heap
- Algorithmic Patterns and Problem Solvers
- Sorting Algorithms and Sorters
- Graphs and Graph Algorithms
- C# and Object-Oriented Programming
- Class Hierarchy Diagrams
- Character Codes
Link: Read online.