Data Structures and Abstractions with Java
(5th edition)


Frank M. Carrano and Timothy M. Henry

Errata List

Last updated on October 27, 2019.
The date after each error is the date it was posted on this list. Subsequent printings of the book will correct these errors.

If you find an error and it is not on this list, please e-mail a description of the error, the page number, and the tile/edition of the book.

Chapter Prerequisites

Page xxvii (27) (Sept. 6, 2018)
Replace Chapter 6 as a prerequisite for Chapter 10 with Chapter 1

Chapter 8

Page 260 (Oct. 26, 2018)
In part b of Figure 8-19, add an arrow from the original first node to the new first node.

Chapter 10

Page 295 (Sept. 6, 2018)
Replace Chapter 6 as a prerequisite with "Chapter 1 Bags"

Page 312 (Sept. 6, 2018)
  • In Project 8 (continuation), first sentence at the top of the page, replace "objects in" with "people on"
  • In Project 9, second paragraph, first sentence, replace "any entry in a list of ingredients" with "an ingredient in a recipe"
  • In Project 13, replace "VectorList" with "OurList"
  • Chapter 11

    Page 326 (Apr. 20, 2018)

  • Segment 11.15: Revise the text immediately after the code for the add method, as follows:
    "This method differs from the previous add method because it usually calls the private method makeRoom, whose definition appears in Segment 11.9, to make room in the array for the new entry. The only time it does not call makeRoom is when the addition is at the end of the list. Recall that Study Question 5 asked you to define makeRoom."

  • Page 330 (Sept. 6, 2018)
    Reword Project 11 as follows:
    "Repeat Project 8 in Chapter 10, but use an instance of AList instead of ArrayList.

  • Chapter 12

    Page 360 (Sept. 6, 2018)
    In Project 11, delete the words "1 through 6 and 10 through 17."

    Chapter 13

    Page 399 (Sept. 6, 2018)
  • In Project 1, add the words "within the inner class" after "priorNode" in the last sentence.
  • In Projects 2 and 3, change "ListIterator" to "java.util.ListIterator "

  • Page 400 (Sept. 6, 2018)
  • In Project 9, replace "an iterator" with "iterators for ingredients and directions".
  • In Project 10, second sentence, replace "consecutive integers" with "adjacent integers".

  • Chapter 14

    Page 424 (May 7, 2018)
    In Exercise 12, the algorithm is in Segment 14.29, not Segment 14.28.

    Chapter 15

    Page 451 (Apr. 20, 2018)
    Segment 15.18: Change public to private in the header of the method insertionSort.

    Chapter 16

    Page 472 (Oct. 26, 2018)
    In the pseudocode comments at the bottom of the page, change "the beginning of the array" to "indexFromLeft" and change "the end of the array" to "indexFromRight"

    Chapter 18

    Page 539 (Sept. 6, 2018)
    In Project 7,
  • Delete "QueueBase" in the second sentence.
  • In part b, replace "the base class QueueBase" with "your base class"
  • Chapter 20

    Page 581 (Apr. 20, 2018)
    Segment 20.16: Change the body of the if statement as follows:

    wordTable.add(nextWord, new Integer.valueOf(1));

    As of Java 9, the constructors for wrapper classes, such as Integer and Double, are deprecated. Instead, you should use the method valueOf, which was introduced in Java 5.

    Chapter 23

    Page 650 (Apr. 20, 2018)
    In the class KeyIterator at the top of the page, make the following changes:

    Java Interlude 9

    Page 724 (Apr. 20, 2018)
    Segment J9.20, third line: Change privateSetTree to initializeTree.

    Chapter 26

    Page 732 (Apr. 20, 2018)
    Listing 26-2: The import statement is not necessary.

    Page 742 (Oct. 27, 2019)
    Figure 26-7: In the leftmost portions of parts a and b, erase the arrow in Node N that points to a right child. Node N has only a left child.

    Page 747 (Apr. 20, 2018)
    Segment 26.30: Revise the 5th comment before the method removeEntry, as follows:
    // Returns: The root node of the resulting tree; if anEntryentry matches

    Make the same change to entry in the body of the method:
    int comparison = anEntryentry.compareTo(rootData);

    Page 748 (Apr. 20, 2018)
    Segment 26.32: The comment on the closing brace of the method removeFromRoot should contain removeFromRoot instead of removeEntry.

    Chapter 28

    Pages 796-797 (Apr. 20, 2018)
    Segment 28.12: In the private method addEntry, we prefer to not leave assert statements in production code. Please change the two assert statements in this method to comments.

    Chapter 29

    Page 847 (Oct. 26, 2018)
    In Line 5, change "Figure 29-25" to "Figure 29-26"

    Supplement 4 (online)

    Page S4-40 (Apr. 20, 2018)
    Answer 4: Revise the if statement in the method ensureCapacity as follows:
    if (lastIndex >= heap.length - 1)

    (End of errata)