Errors in the most recent (2001-08) printing of the book are listed below under Current Errors.

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 first author David Watt.


Current Errors

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

2012-09-21

Page 93, line 11

Replace "less than" by "greater than".

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.


Old Errors

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.