Error Information for Data Structures and Algorithm Analysis in C++ (4/e)


Here is the errata list for Data Structures and Algorithm Analysis in C++ (4/e), by Mark Allen Weiss. Some of the errors affect the source code; updates to the code are done automatically.

Click here to report a new error.

I'm very backlogged on these.
Please be patient for a reply. Thanks!

First printing

--------  ---  ---  ----------------------------------------------------------
06/11/15  023  PE   In the first sentence after the code fragment, remove &x from the
                    list of lvalues.
12/06/14  028  AV   In first sentence of last paragraph, change "call-by-value"
                    to "return-by-value"
09/23/15  029  ZH   Line 11 of the first paragraph of section 1.5.5i, change "in to y" to "in to x"
06/14/15  032  PE   After line 22, clarify that the chaining would not be allowed
                    if the return type was void.
01/29/15  056  RM   Line -8, change "nearly 9,000 seconds (or two and a half hours) to
                    "nearly 90,000 seconds (or one day)"
07/01/15  068  ZD   Change "finishes with high-low >= -1" to "maintains the invariant that high-low >= -1
02/01/16  074  TF   Exercise 2.21, change "the algorithm terminates" to "the algorithm terminates
                    after remaining uncrossed numbers are output"
03/14/16  089  ZH   One line 4, the parenthetical remark beginning "(the +1 is used..."
                    should refer to the push_back routines in Figure 3.8.
12/07/14  093  AV   In line 13 from bottom, erase(-end()) should be erase(--end()).
09/24/14  124  US   In Figure 4.5 (and then 4.7, 4.8, 4.10), folder cop3212
                    inadvertantly has two identical named directories (fall).
                    Change the second "fall" to "spring".
06/13/17  199  DS   Figure 5.8, line 11, add a closing parenthesis after the ;
04/14/15  207  MM   In Figure 5.17, currentSize, which represents the number of
                    active+deleted items should only be incremented if the inserted
                    item does not replace an item marked as deleted.  There are
                    several simple ways to fix that.  The easiest fix is to remove
                    the ++ at line 12, and instead add at line 6:
                         if( array[ currentPos ].info != DELETED ) ++currentSize;
08/13/17  276  ZW   "rank" is not defined prior to use.  In binomial queues,
                    it represents the number of children of the root
09/17/14  287  BQ   Exercise 6.35(b), change "smaller tree" to "smaller queue"
12/10/15  356  PE   Line 5, s{numElements, -1} should read s(numElements, -1)
                    to invoke the two-parameter vector constructor
09/17/14  411  MAW  Four lines from bottom, add a sentence prior to "But that means that..."
                    The new sentence is "Because there are no edges going from
                    s's side of the cut to t's side of the cut in Gr, there is also no
                    backflow across the cut either."
06/24/13  568  GO   At the end of Section 12.2.1 add a sentence: "Note that
                    in this last case, we can simplify because the color flip
                    by itself, without the rotation, yields equivalent
                    behavior; most importantly, either way, we would still
                    need to percolate up toward the root.


AV   Alberto Verdejo
BQ   Brian Quanz
DS   Dendi Suhubdy
MM   Mario Marchand
PE   Paul Epstein
RM   Ruth Mazureko
TF   Trevor Fancher
US   Uday Singh
ZD   Zhanrong Du
ZH   Zhang Hongyuan
ZW  Zhu Wensi

Printing History

First Printing: June 2013
You can see which printing you have by looking at the bottom of the copyright page for a sequence of numbers. If you see
1 2 3 4 5 6 7 8 9 10
you have the first printing.