Question

You will be traversing through an integer tree to print the data. Given main(), write the...

You will be traversing through an integer tree to print the data. Given main(), write the methods in the 'IntegerBinaryTree' class specified by the // TODO: sections. There are 6 methods in all to write.

Ex: If the input is

70
86
60
90
49
62
81
85
38
-1

the output should be:

Enter whole numbers to insert into the tree, -1 to stop

Inorder: 38 - 49 - 60 - 62 - 70 - 81 - 85 - 86 - 90 - 

Reverse Preorder: 70 - 86 - 90 - 81 - 85 - 60 - 62 - 49 - 38 - 

Reverse Postorder: 90 - 85 - 81 - 86 - 62 - 38 - 49 - 60 - 70 - 

Main.java

import java.util.Scanner;

public class Main {

   public static void main(String[] args) {
      
       IntegerBinaryTree tree = new IntegerBinaryTree();
      
       Scanner scrn = new Scanner(System.in);
       System.out.println("Enter whole numbers to insert into the tree, -1 to stop");
      
       int num = scrn.nextInt();
       while(num != -1) {
           tree.insertNode(num);
           num = scrn.nextInt();
       }
       System.out.println();
      
       tree.printInorder();
       tree.printReversePreorder();
       tree.printReversePostorder();

   }

}

Node.java

public class Node {

   private int element;
   private Node left;
   private Node right;
  
   public Node(int ele) {
       element = ele;
       this.left = null;
       this.right = null;
   }
  
   public int getElement() {
       return element;
   }
  
   public Node getLeft() {
       return left;
   }
  
   public Node getRight() {
       return right;
   }
  
   public void setLeft(Node Left) {
       left = Left;
   }
  
   public void setRight(Node Right) {
       right = Right;
   }
}

IntegerBinaryTree.java

public class IntegerBinaryTree {

   private Node root = null;
  
   public void insertNode(int value) {
       if (root == null) { // empty, so make root node
           root = new Node(value);
       }
       else {
           Node pos = root;
           while(pos != null) {
               if (value < pos.getElement()) {
                   if (pos.getLeft() == null) {
                       pos.setLeft(new Node(value));
                       pos = null;
                   }
                   else {
                       pos = pos.getLeft();
                   }
               }
               else {
                   if (pos.getRight() == null) {
                       pos.setRight(new Node(value));
                       pos = null;
                   }
                   else {
                       pos = pos.getRight();
                   }
               }
           }
       }
   }
  
   // TODO: write the method printInorder
       // It should check that the tree isn't empty
       // and prints "Tree is empty" if it is
       // otherwise prints "Inorder: ", calls the Inorder method,
       // and prints an empty line
      


  
  
   // TODO: write the method printReversePreorder
       // It should check that the tree isn't empty
       // and prints "Tree is empty" if it is
       // otherwise prints "ReversePreorder: ", calls the reversePreorder method,
   // and prints an empty line


   // TODO: write the method printReversePostorder
       // It should check that the tree isn't empty
       // and prints "Tree is empty" if it is
       // otherwise prints "ReversePreorder: ", calls the reversePostorder method,
// and prints an empty line

  
   // TODO: write the inorder method
   // that traverses the tree and prints the data inorder

  
   // TODO: write the method reversePreorder
   // that traverses the tree and prints the data in reverse Preorder (right before left)
  

   // TODO: write the method reversePostorder
       // that traverses the tree and prints the data in reverse Postorder (right before left)

}

Homework Answers

Answer #1

code after implementation

IntegerBinaryTree.java (code to copy)

public class IntegerBinaryTree {

   private Node root = null;
  
   public void insertNode(int value) {
       if (root == null) { // empty, so make root node
           root = new Node(value);
       }
       else {
           Node pos = root;
           while(pos != null) {
               if (value < pos.getElement()) {
                   if (pos.getLeft() == null) {
                       pos.setLeft(new Node(value));
                       pos = null;
                   }
                   else {
                       pos = pos.getLeft();
                   }
               }
               else {
                   if (pos.getRight() == null) {
                       pos.setRight(new Node(value));
                       pos = null;
                   }
                   else {
                       pos = pos.getRight();
                   }
               }
           }
       }
   }
   // TODO: write the method printInorder
       // It should check that the tree isn't empty
       // and prints "Tree is empty" if it is
       // otherwise prints "Inorder: ", calls the Inorder method,
       // and prints an empty line
   public void printInorder(){
       if(root==null){
           System.out.println("Tree is empty");
       }else{
           System.out.print("Inorder: ");
           inorder(root);
           System.out.println();
       }
   }
   
    // TODO: write the method printReversePreorder
       // It should check that the tree isn't empty
       // and prints "Tree is empty" if it is
       // otherwise prints "ReversePreorder: ", calls the reversePreorder method,
   // and prints an empty line 
   public void printReversePreorder(){
       if(root==null){
           System.out.println("Tree is empty");
       }else{
           System.out.print("ReversePreorder: ");
           reversePreorder(root);
           System.out.println();
       }
   }

   // TODO: write the method printReversePostorder
       // It should check that the tree isn't empty
       // and prints "Tree is empty" if it is
       // otherwise prints "ReversePreorder: ", calls the reversePostorder method,
// and prints an empty line
    public void printReversePostorder(){
        if(root==null){
            System.out.println("Tree is empty");
        }else{
            System.out.print("ReversePreorder: ");
            reversePostorder(root);
            System.out.println();
        }
    }

  // TODO: write the inorder method
   // that traverses the tree and prints the data inorder
    private void inorder(Node root){
        if(root==null)
            return;
        inorder(root.getLeft());
        System.out.print(root.getElement()+" -");
        inorder(root.getRight());
    }
   
   // TODO: write the method reversePreorder
   // that traverses the tree and prints the data in reverse Preorder (right before left)
    private void reversePreorder(Node root){
        if(root==null)
            return;
        System.out.print(root.getElement()+" -");
        reversePreorder(root.getRight());
        reversePreorder(root.getLeft());
    }
  

   // TODO: write the method reversePostorder
       // that traverses the tree and prints the data in reverse Postorder (right before left)
    private void reversePostorder(Node root){
        if(root==null)
            return;
        reversePostorder(root.getRight());
        reversePostorder(root.getLeft());
        System.out.print(root.getElement()+" -");
    }

}

IntegerBinaryTree.java code screenshot

Input/Output Screenshot after running Main.java

Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
Java Program: You will be inserting values into a generic tree, then printing the values inorder,...
Java Program: You will be inserting values into a generic tree, then printing the values inorder, as well as printing the minimum and maximum values in the tree. Given main(), write the methods in the 'BSTree' class specified by the // TODO: sections. There are 5 TODOs in all to complete. Ex: If the input is like ferment bought tasty can making apples super improving juice wine -1 the output should be: Enter the words on separate lines to insert...
In this lab, you will write a program that creates a binary search tree based on...
In this lab, you will write a program that creates a binary search tree based on user input. Then, the user will indicate what order to print the values in. **Please write in C code** Start with the bst.h and bst.c base code provided to you. You will need to modify the source and header file to complete this lab. bst.h: #ifndef BST_H #define BST_H typedef struct BSTNode { int value; struct BSTNode* left; struct BSTNode* right; } BSTNode; BSTNode*...
Complete the redblacktree in Java. Add a public boolean isBlack field to the Node inner class....
Complete the redblacktree in Java. Add a public boolean isBlack field to the Node inner class. Make every Node object have a false isBlack field, all new node is red by default. In the end of the insert method, set the root node of your red black tree to be black. Implement the rotate() and recolor() functions, and create tests for them in a separate class. import java.util.LinkedList; public class BinarySearchTree<T extends Comparable<T>> { protected static class Node<T> { public...
Here is a modification of the BST program that includes a recursive find method: BinarySearchTree2C.java (posted...
Here is a modification of the BST program that includes a recursive find method: BinarySearchTree2C.java (posted below) Implement the following methods using recursion: int depth() // returns the length of the deepest path from root to any leaf int node_count() // returns the number of nodes in the tree void insert(int n) // inserts value n into the tree BinarySearchTree2C clone() // returns a clone (deep copy) of the tree Add code to the main method to test these methods....
The Binary Search Tree implementation for bst.zip. The code in the destructor of the BST class...
The Binary Search Tree implementation for bst.zip. The code in the destructor of the BST class is empty. Complete the destructor so the memory allocated for each node in the BST is freed. Make a couple of different trees in your main method or in a function to test the destructor (the program should not crash upon exiting). bst.zip (includes the following files below in c++): bst.h: #pragma once #include #include "node.cpp" using namespace std; template class BST { public:...
Write code in java Implement a method to build an AVL tree out of a sorted...
Write code in java Implement a method to build an AVL tree out of a sorted (ascending order) array of unique integers, with the fastest possible big O running time. You may implement private helper methods as necessary. If your code builds a tree that is other than an AVL tree, you will not get any credit. If your code builds an AVL tree, but is not the fastest big O implementation, you will get at most 12 points. You...
Finish the code wherever it says TODO /**    * Node type for this list. Each...
Finish the code wherever it says TODO /**    * Node type for this list. Each node holds a maximum of nodeSize elements in an    * array. Empty slots are null.    */    private class Node {        /**        * Array of actual data elements.        */        // Unchecked warning unavoidable.        public E[] data = (E[]) new Comparable[nodeSize];        /**        * Link to next node.       ...
Please ask the user to input a low range and a high range and then print...
Please ask the user to input a low range and a high range and then print the range between them. Add printRang method to BST.java that, given a low key value, and high key value, print all records in a sorted order whose values fall between the two given keys from the inventory.txt file. (Both low key and high key do not have to be a key on the list). ****Please seperate the information in text file by product id,...
Add a method to RedBlackBST to print a RB-BST indexing the subnodes. Test the tree inserting...
Add a method to RedBlackBST to print a RB-BST indexing the subnodes. Test the tree inserting element by element and printing the results with (1) S E A R C H E X A M P L E (where the value is the index of the letter in the initial word) and (2) K R I S T E N public class RedBlackBST<Key extends Comparable<Key>, Value> { private Node root; private class Node // BST node with color bit (see...
is there anything wrong with the solution. the question are from java course Write a main...
is there anything wrong with the solution. the question are from java course Write a main method that will request the user to enter Strings using a JOptionPane input dialog. The method should continue accepting strings until the user types “STOP”.       Then, using a JOptionPane message dialog, tell the user how many of the strings begin and end with a digit. Answer: import javax.swing.*; public class IsAllLetters {     public static void main(String[] args) {         String input;         int count =...