ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Data Structures, Algorithms and Object-Oriented Programming
Gregory Heileman
0 07 114322 X
Francis Glassborow
beginner's c++; advanced c++
Appeared in:
I am not going to write very much about this book because I believe that it falls between two stools. It could have been a purely theoretical text on the subject, or it could have been about the subject in the context of C++.

In the latter case I would expect at least substantial awareness of the Standard Template Library. I can find no evidence that the author is aware of the facilities provided by C++. To my mind he compounds this by devoting chapters to OO in straight C. While I know you can use OO and code it in C, I would not advocate it. If OO is what you are doing, then choose a language that has direct support for it.

On the other hand, if the author is mainly concerned with the theoretical basis for OO programming of algorithms and data structures I would have been happier with a different choice of language (or perhaps the use of pseudo code).

There are a lot of weaknesses in the author's understanding of C++. For example on page 200 he provides a definition (not declaration, despite the caption) of his class BST (binary search tree) which inherits privately and virtually from a base class. It has long been known that any form of virtual inheritance other than public is a pure illusion and completely pointless. Another issue that arises here is that the use of a virtual base class (along with protected member functions) means that the class is intended to be used as a base class, so why are there no virtual member functions? More specifically, why is there no virtual destructor? Anyone with sufficient knowledge of C++ to correctly implement data structures in C++ would know how important this issue is.

Exceptions is one of the major issues with algorithms and data structures implemented in C++. The author nowhere mentions the subject of exceptions (nor does he refer to namespaces though he makes extensive use of templates).

If you want to study the subject specifically in terms of C++ you would probably be much better off studying Matt Austern'sGeneric Programming and the STL, if you want to study the theoretical foundations of the subject I think you will find other books that focus on the topic. I would be happy to publish readers' choices for such a book.