This book is intended to teach young programmers, perhaps still at university or early in their careers, techniques that will be valuable for a long time.
This book is intended to teach young programmers, perhaps still at university or early in their careers, techniques that will be valuable for a long time. To make learning easier, each chapter contains self-test exercises complete with answers. Exercises suitable for assessed coursework are also included; model answers are available for instructors.
In most places this text is very thorough - for example, 8 pages are taken up with an introduction to pointers and memory allocation in C++, topics which most C++ programmers should already be familiar with. The structure of C++ classes - including
protectedmembers, copy-constructors and assignment operators - has a chapter all to itself, while a 63-page appendix gives a good summary of the key language constructs.
The ADTs themselves are explained first in terms of where and how they might be used to solve real-world problems. This explanation is backed up by multiple implementations. The efficiency of these implementations is evaluated and presented in O-notation. Graphs, lists, queues, stacks and trees are all covered, including appropriate means for saving and restoring the data to and from disc.
Although this book uses C++ and teaches the reader about both Abstract Data Types (ADTs) and C++ Templates, no mention is made of the C++ Standard Template Library (STL) which includes ready-made implementations for many of the commonly used ADTs. There is also no mention of exceptions and much of the example code uses a reference parameter for returning a success/failure indication.