Errors found only in earlier printings of the book are listed later under Old Errors.
If you find an error, please report it to the authors: David Watt or Deryck Brown.
| Date | Location | Correction |
| 2002-02-04 | Page 26, Example 2.6 | In paragraph 2, replace "(2.4a-c)" by "(2.7a-c)". |
| 2002-03-20 | Page 61, last paragraph | Replace "performs three times as many copies" by "performs more copies". |
| 2002-03-20 | Page 61, Table 3.45 | In the middle column of the row labeled "Quick-sort (best case), replace "(2n/3) log2n" by "(3n/2) log2n". |
| 2002-06-14 | Page 75, Example 4.5 | Replace "zoo2.printFirstToLast();" by "zoo2.printLastToFirst();". |
| 2002-06-14 | Page 82, line 1 | Replace "Examples 4.1 and 4.4" by "Examples 4.3 and 4.6". |
| 2001-08-28 | Page 268, Program 10.42, method next | Replace "add" by "addLast" (twice). |
| 2002-06-14 | Page 270, summary point 2 | Replace "deteriorating to O(log n)" by "deteriorating to O(n)". |
| 2002-06-14 | Page 270, summary point 4 | Delete "respectively,". |
| 2001-09-19 | Page 272, Algorithm 10.46 | In step 2.2.1, delete "ing". |
| 2001-08-09 | Page 285, Program 11.9, method remove | Replace lines 10-11 by "entries[--card] = null;". |
| 2001-10-23 | Page 311, Program 12.4 | The layout of the BucketNode constructor is anomalous. |
| 2001-08-10 | Page 334, Exercise 12.4 | Replace "Section 12.2.1" by "Section 12.2.4". |
| 2001-10-22 | Page 438, cases (3) and (4) | Move "(This case was illustrated in Figure 16.3.)" from case (3) to case (4). |
| 2001-10-26 | Pages 450-451, Program 16.15 | Replace all occurrences of "Btree.Node" by "Node". |
| 2001-10-26 | Pages 453, Program 16.19 | Replace both occurrences of "Btree.Node" by "Node". |
| 2001-10-26 | Pages 460-461, Program 16.23 | Replace all occurrences of "Btree.Node" by "Node". |
| 2001-10-26 | Page 460, Program 16.23, method insert | Delete lines 23-25, and replace line 114 by:
{ curr.insertInNode(elem, null, null, currPos);
if (curr.size == arity) // curr has overflowed
splitNode(curr, ancestors);
return;
} |
| 2001-10-26 | Page 461, Program 16.23, method insertInNode | In line 7, replace "node.size" by "size". |
| 2001-10-23 | Page 464, Algorithm 16.25 | Steps 2-5 should be aligned vertically under step 1. |
| 2001-11-06 | Page 467, Exercise 16.5 | Replace the hint by "(Hint: You will find it convenient to store in each node (a) a link to its parent (if any), and (b) its height. After a new leaf node is inserted, the heights of the new node's ancestors might change. After a node is deleted, likewise, the heights of the deleted node's ancestors might change. After any rotation, the heights might change again.)" |
| 2002-12-05 | Page 476, section 17.4, paragraph 4 | There is an overprint in the URL. It should read "www.cis.unisa.edu.au/~pizza/gj/". |
| 2001-10-23 | Page 489, equation (A.21) | Replace "(n) =" by "f(n) =". |
| 2004-05-06 | Page 497, Table B.2, binary expression | Replace "<<, ..., !=" by "<<, >>, >>>, ==, !=". |
| 2001-10-23 | Page 500, lines 9-12 | The size and typeface of the displayed code are anomalous. |
| 2003-01-07 | Page 527, line 3 | Replace "open-bucket hash table" by "closed-bucket hash table". |
| 2003-01-08 | Page 534, line 8 of C.5.2 | The text "0' and ... as" should not be italicized, but "c", "x", and "y" should be italicized. |
| Date | Location | Correction |
| 2001-07-20 | Page 9, Exercise 1.2 | Delete "use an initial value for r of a/2, and". |
| 2001-01-17 | Page 23, Example 2.4, 1st table, row 4 | Numbers should be 9, 15, 21. |
| 2001-01-17 | Page 23, Example 2.4, 2nd table, row 3 | Numbers should be 31, 244, 1897. |
| 2001-02-13 | Page 32, Exercise 2.4, matrixMult, line 8 | Replace " + " by " * ". |
| 2001-07-31 | Page 32, Exercise 2.9 | Mark this exercise "*". In line 1, replace "positive" by "nonnegative". Replace lines 3-4 by "Devise a non-recursive version of this algorithm.". |
| 2001-07-31 | Page 33, Algorithm 2.22 | In steps 1 and 2, replace "0" by "1". |
| 2001-07-23 | Page 46, Algorithm 3.23, step 2.2 | Replace "If" by "Otherwise, if". |
| 2001-03-21 | Page 60, (3.17-18) | (3.17a) should say "comps(n) » ...", and (3.18) should say "comps(n) » n2/2". |
| 2001-07-23 | Page 63, Exercise 3.7 | Replace "Algorithm 3.16" by "Algorithm 3.18". |
| 2001-07-24 | Page 65, Algorithm 3.46, step 1 | Replace "right-left+1" by "right-left-1". |
| 2001-01-17 | Page 74, line 5 | Delete "a.succ = b; b.pred = a;". |
| 2001-01-17 | Page 78, Algorithm 4.11, line 1 | Replace "the nonempty SLL" by "the SLL". |
| 2001-07-25 | Page 93, Algorithm 4.30 | Replace "the sorted SLL sorted" by "the sorted SLL headed by sorted" (twice). |
| 2001-07-25 | Page 95, Exercise 4.11 | Replace "head of the list" by "front of the SLL". |
| 2001-02-22 | Page 175, line -5 | Replace "list.set(i)" by "list.set(i, ...)". |
| 2001-02-22 | Page 180, Table 8.8, operations get and set | Time complexity should be O(1). |
| 2001-02-22 | Page 186, Program 8.14, constructor | Replace "SLLList()" by "LinkedList()". |
| 2001-02-27 | Page 210, Figure 9.5 | (b) should show card=3; (c) should show card=4; (d) should show card=0. |
| 2001-07-24 | Page 232, Exercise 9.1 | After "set operations," insert " =,". |
| 2001-03-06 | Page 252, Figure 10.19 | Swap illustrations (b) and (c), to match the text. |
| 2001-03-29 | Page 261, Algorithm 10.37, steps 1.1-1.3 | Replace as follows: 1.1. Traverse ... node top's left subtree. 1.2. Traverse ... node top's right subtree. 1.3. Visit node top. |
| 2001-07-25 | Page 272, Algorithm 10.46 | In step 2.2.1, after "left child", insert ", updating top's left child accordingly". In step 2.3.1, after "right child", insert ", updating top's right child accordingly". |
| 2001-07-03 | Page 311, Program 12.4 | The BucketNode constructor should be: private BucketNode (Object key, Object val, BucketNode succ) { this.key = key; this.value = val; this.succ = succ; } |
| 2001-01-25 | Page 487, Example A.2, line 5 | Replace "one or more" by "two". |
| 2001-07-23 | Page 535, last paragraph | Identifiers "next" and "remove" should not be italicized. |