Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
Starting Out with Java: From Control Structures through Data Structures (4th Edition) (What's New in Computer Science)
4th Edition
ISBN: 9780134787961
Author: Tony Gaddis, Godfrey Muganda
Publisher: PEARSON
Expert Solution & Answer
Book Icon
Chapter 21, Problem 2FTE

Explanation of Solution

Given program code:

//Add a value to a binary search tree

//Return root of resulting search tree

Node add(Node tree, int value) //Line 1

{ //Line 2

    //Check if tree is equal to null

    if (tree == null) //Line 3

    { //Line 4

        //Return new node

        return new Node(x); //Line 5

//Check if the value is less than the value of the current node

        if (value < tree.value) //Line 6

            //Return and add the value to the left side

            return add (tree.left, value); //Line 7

        //Else

        else //Line 8

            //Return and add the value to the right side

            return add (tree.right, value); Line 8

}//Line 9

The above program code snippet is used to add a value to the binary search tree and the program returns the modified root value.

Error in the program code:

Error 1:

In “Line 7”, the result of the recursive call needs to be grafted back into the tree. So this line should be modified as shown below.

//Call the function "add ()" and store the resultant into the node "tree.left"

tree.left = add(tree.left, value);

//Return the node.

return tree;

Error 2:

In “Line 8”, the result of the recursive call needs to be grafted back into the tree. So this line should be modified as shown below.

//Call the function "add ()" and store the resultant into the node "tree.right"

tree.right = add(tree.right, value);

//Return the node.

return tree;   

Corrected code:

The modified code is highlighted below...

Blurred answer
Students have asked these similar questions
struct insert_into_bst { // Function takes a constant Book as a parameter, inserts that book indexed by // the book's ISBN into a binary search tree, and returns nothing. void operator()(const Book& book) { // // TO-DO (7) ||| ///// // Write the lines of code to insert the key (book's ISBN) and value // ("book") pair into "my_bst". END-TO-DO (7) | } std::map& my_bst; };
To insert an element into a binary search tree (BST), you need to locate where to insert it in the tree. The key idea is to locate the parent for the new node.  True  False
Java Binary Search Trees I need help with the InsertionPoint method in a binary search tree. Helper method for the insert() method.  This method finds and returns the correct parent of the new key value.  If the key value already exists, throw a DuplicateItemException with an appropriate error message. @param key The value to insert into the tree.  @return The parent node of the new value  @throws DuplicateItemException the code is this  private BSTNode<E> insertionPoint(E key) throws DuplicateItemException {        //TODO: Implement this method.                return null;    }
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education