Corrections for the Fourth Edition

Data Structures and Other Objects Using C++
Fourth Edition
by Michael Main and Walter Savitch
ISBN 0-13-212948-5, Softcover, 818 pages

Here is a list of corrections for the fourth edition of the text.

If you find further errors, please drop me a line by email. I enjoy corresponding with readers!
--Michael Main (

Title page of Chapter 1: The word "logariindicesthmic" should certainly be "logarithmic"! Chapter 1: The assert in temperature.cxx should use "greater than or equal to" rather than "greater than." Page 26, Exercise 14: As written this code is O(n) since the inner loop iterates only once for each execution of the outer loop. I had intended to have the body of the inner loop print j, in which case the code would be quadratic. Page 90: The printed page is missing several lines, so I have posted a corrected page 90. Page 392, Chapter 7, Project 17: When there is a current element, all of the member functions should take constant time with one exception. Also, at the end of item 4, the sentence should read: "down to the bottom of the second stack." Page 512: The print function is a pre-order traversal, not a backwards in-order traversal. I suspect that the error in the book is because I often use a backward in-order traversal when I teach the material. I like the look of the output from the backward in-order traversal because you can sort of turn your head sideways and see the tree in its natural form. Page 689: The highlighted boolean expression should be: your_time <1 sunrise Page 773: The third bullet point should refer to the weight of the edge from 1 to 5.