Errata

Here is the errata list for Data Structures and Algorithm Analysis in C++ (2/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. 

Second printing

  DATE   PAGE  WHO  PROBLEM
--------  ---  ---  ----------------------------------------------------------
08/04/99  018  TA   Paragraph 2, line 3, change "copied with ==" to "copied with =".
03/20/99  024  MAW  End of second line of operator= subsection: change "that" to "the"
02/08/00  083  AH   Figure 3.24: Literal needs to define operator!=
01/24/99  095  FSV  (Clarification) The standard would suggest that the technique
                    described in paragraph 4 is legal, and that Borland 5.0 is wrong.
02/16/99  097  MAW  Figure 3.45: remove "new" immediately after "throw"
02/16/99  102  MAW  Figure 3.53: remove "new" immediately after "throw"

04/17/99  138  SH   In the two-children case, the recursive call to
                    remove should have t->element as a parameter instead of x.
12/01/99  144  AS   Change .328 to 1.328.
03/27/99  166  DH   Line 24, item 5, change "L children" to L "data items"
04/06/99  167  DH   Line 15, change "first level could " to "next level could"
02/19/99  172  DM   In Exercise 4.10, mention that N is the number of nodes
11/13/99  185  WB   Last sentence of next to last paragraph, change "would be
                    recognized." to ">> would be recognized as the token."
11/13/99  186  WB   In Figure 5.7, since name is private, the hash function
                    should either be a friend or use a public accessor, such as
                    item.getName( );
04/17/99  287  KQ   Remove "insertion" from caption in Figure 7.20.
09/11/99  551  MAW  There is no accessor version of operator[] for map.
10/27/99  574  I&G  operator>> and getline should not need to assume
                    a limit of MAX_LENGTH and a different version
                    is provided in the source code for another book
                    (Data Structures and Problem Solving Using C++, 2/e).
                    If we stick with this version, both routines have
                    a technical bug: if the read fails, we still
                    attempt to use buf, even though it is uninitialized.
                    An easy fix is to add this test to the code.
09/04/00  568/9 JW  Microsoft seems to have a bug that delete[] on
                    a zero-length array crashes if the arrays contains
                    objects with virtual destructors.
            

First printing

  DATE   PAGE  WHO  PROBLEM
--------  ---  ---  ----------------------------------------------------------
12/09/98  025  MAW  The description of the default initializer list for
                    a copy constructor that is provided is wrong. The
                    correct description is that the copy constructor
                    in Fig 1.13 has initializer lists that call the
                    zero parameter, rather than the copy constructors
                    of the data members.
11/11/98  026  MAW  In Figure 1.14, remove the semicolons at the end of the
                    declarations for read and write
12/09/98  185  MAW  In Fig 5.6, need to add initialization of theLists
                    to the initializer list. See the online code.
12/09/98  193  MAW  In Fig 5.14, need to add initialization of currentSize
                    and array to the initializer list. See the online code.

Credits

TA   Thomas Anastasio
WB   Wei Bai
DH   Dennis Hamilton
SH   Sharon Harvey
AH   Alexander Hinds
I&G  Ireneusz Lidwa and Greg Menke
DM   Dylan McNamee
KQ   Ke Qiu
AS   Ari Stern
FSV  Faisal Sabir Vali
JW   Jeffrey Walton

Printing History

First Printing: November 1998
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.