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


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.

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

Second and higher printing

--------  ---  ---  ----------------------------------------------------------
10/07/01  009  XB   Near end of first paragraph, change "any value of n" to
                    "any nonegative value of n"
08/04/99  018  TA   Paragraph 2, line 3, change "copied with ==" to "copied with =".
09/04/01  020  TO   Line 12, change Section 1.4.2 to Section 1.4.3.
03/20/99  024  MAW  End of second line of operator= subsection: change "that" to "the"
02/04/03  029  AL   Line 5, change "arr" to "arr1".
09/26/01  071  MAW  In first full paragraph, the statement that "arrays are generally
                    not used to implement lists" is incorrect (e.g. vector)
                    and should be replaced with "simple arrays are not
                    apprpriate in some situations".
01/27/01  078  MAW  Line 1, paragraph 2, change "Insert" to "insert".
01/27/01  078  DC   In paragraph 3, add a remark that remove could be done
                    in O(1) if we add a routine along the lines of remove(ListIterator prior).
02/08/00  083  AH   Figure 3.24: Literal needs to define operator!=
07/14/00  090  MJ   IN the last figure, change "Rear" to "back" and "Front" to "front"
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"
11/09/01  100  WH   Line 22, "Figure 3.4" should be "Figure 3.49"
02/16/99  102  MAW  Figure 3.53: remove "new" immediately after "throw"
07/14/04  109  CS   In the middle of the page, change "line 3 to line 4"
07/14/04  112  CS   Change "error calls" to "error checks"
11/05/02  127  BT   First line Sec 4.2.1, change "tree has at most" to
                    "tree node has at most"
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.
07/16/01  152  TO   In second to last sentence, change "rotateWithLeftChild is"
               DL   to "rotateWithRightChild is"
07/14/04  155  AS2  In Sec 4.5, paragraph 2, line 2, change "as long at it" to "
as long as it"
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."
02/04/03  185  DS   In the last sentence, change "explicitly implement
                    list the copy constructor" to "explicitly list the copy constructor"
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( );
07/14/04  226  AS2  In Secion 6.6, line 2, change O(N) to o(N).
01/31/05  278  CS   Line 1, change (7.7) to (7.8)
01/31/05  282  CS   Line 14, change "Suprisingly" to "Surprisingly"
01/31/05  291  CS   In the second table, change "51" to "41"
03/29/01  297  GS   In Exercise 7.21 (b), change "nondistinct" to "distinct".
04/17/99  287  KQ   Remove "insertion" from caption in Figure 7.20.
07/14/04  314  MR   In first paragraph after the definition of alpha(M,N),
                    change "grows slower then" to "grows slower than"
11/21/01  331  WH   In Figure 9.5, change "find...DegreeZero" to "find...IndegreeZero"
11/06/02  332  DL   Line 22, change "all edges adjacent to v" to
                    "all vertices adjacent to v"
01/10/02  339  MC   In Figure 9.18, change "Psuedocode" to "Pseudocode"
07/14/04  371  KE   Change "visits I and J" to visits "J and I"
09/13/02  403  DM2  In paragraph 2, replace "this bound is tight" with
                    "this ratio, 2, is tight"
07/02/02  407  ???  In the first oval it says x1=0, x5=10 but
                    it should say x1=0, x6=10
11/27/01  414  GO   In Figure 10.33, change "coordinates differ"
                    to "y-coordinates differ"
07/14/04  453  CA   Not an error... but note that leaf node with value 68 can
                    also be pruned from the game tree, with the predecessors at
                    ply 4, 3, and 2 returning 50. This figure was not intended
                    to show all possible pruning; just some examples.
07/14/04  455  TG   On line in Fig 10.73, the call is findHumanMove(dc,value,beta);
07/14/04  497  KE   Change "it wil contain the root of the right tree at
                    the end" to "... left tree ..."
01/31/01  505  TS   In second paragraph of Sec 12.2.2, add remark that if X is the root,
                    after the color flip, it will be red, but can be
                    made black immediately to restore property 2.
12/18/00  498  DF   Change second "zig-zag" to "zig-zig"
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

--------  ---  ---  ----------------------------------------------------------
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.


CA   Chris Abrams
TA   Thomas Anastasio
WB   Wei Bai
XB   Xuan Baldauf
DC   Donald Chinn
MC   Marco Cova
KE   Kjell Ellingsen
DF   David Fu
TG   Tommaso Galleri
DH   Dennis Hamilton
SH   Sharon Harvey
WH   Weseung Hwang
AH   Alexander Hinds
MJ   Matt Johnson
AL   Adam Lee
DL   Dan Lee
I&G  Ireneusz Lidwa and Greg Menke
DM   Dylan McNamee
DM2  Doug McIlroy
TO   Tim Oates
PO   Phil Osborne
GO   Greg Ozbirn
KQ   Ke Qiu
MR   Matthew Renzelmann
AS2  Ashish Sabharwal
CS   Chen Shuo
DS   Duncan Smith
TS   Tim Snyder
AS   Ari Stern
GS   Gary Sutton
BT   Bob Toltzis
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.