The book on using algorithms and data structures in Delphi and Kylix has just been released. This page describes the book and has a list of errata for the book and the code.
Although there are numerous books on algorithms in bookstores, few of them go beyond the standard Computer Science 101 course and approach algorithms from a practical perspective. Code is shown, usually merely to illustrate an algorithmic point, and generally no consideration is given to real-life, drop-in-and-use application of the technique in question. Even worse from the perspective of the commercial programmer, many are textbooks and hence some of the more interesting viewpoints are left as exercises for the reader, with little or no answers. Delphi programmers are even more isolated; more often than not they are obliged to use a book with code in C or C++ and translate. Even worse, they can look over at the C++ programmer with his Standard Template Library.
Tomes of Delphi: Algorithms and Data Structures (DADS) aims to bridge the gap for Delphi or Kylix programmers. Algorithms are introduced purely from a Delphi perspective, using the Object Pascal language. Delphi/Kylix standard classes, such as TList and the TStream family, are extensively used. Emphasis is given to drop-in-and-use units and classes.
The book is aimed at medium to advanced level programmers, those who would be looking at the standard algorithm texts and converting algorithms from them into Delphi. Little or no provision is made towards beginner programmers. The book and code is applicable to all versions of Delphi and to Kylix; it was not written just for the latest compiler. Hence, the book will not 'age' as quickly as many other Delphi books--the code in it will still work with Delphi 6 and later.
The DADS book is divided into chapters tracing the standard algorithms from the simple to the more complex. Information and code introduced in earlier chapters is used extensively in later chapters; re-use of code is emphasized. The book does not delve too much into mathematics, especially with regard to efficiency calculations; the reader is referred to other textbooks for such coverage.
Chapter 1: What is an algorithm?
Chapter 2: Arrays
Chapter 3: Linked Lists, Stacks and Queues
Chapter 4: Searching
Chapter 5: Sorting
Chapter 6: Randomized Algorithms
Chapter 7: Hashing and Hash Tables
Chapter 8: Binary Trees
Chapter 9: Priority Queues and Heapsort
Chapter 10: State Machines and Regular Expressions
Chapter 11: Data Compression
Chapter 12: Advanced Topics
There have been some reviews of the book. More...