Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Netbeans/ JAVA write this code: document every line. Create a class for a binary

ID: 3680833 • Letter: N

Question

Netbeans/ JAVA write this code: document every line.

Create a class for a binary tree named BT. Each node in the tree should have data, a reference to the node's left sub-tree, and a reference to the node's right sub-tree. For the purposes of this project, the data in the nodes can be integers. The binary tree should have a height property, a size property, which is the number of nodes in the tree, and the following methods: a null constructor a constructor that builds a tree from a specified array of integers. The tree does not need to be a balanced tree. note: remember to address the height and size properties when building a tree from a specified array. preorder - iterate (list all nodes in order according to the preorder traversal of the tree) inorder - iterate (list all nodes in order according to the inorder traversal of the tree) postorder - iterate (list all nodes in order according to the postorder traversal of the tree) search - given a key value, tell us whether or not the integer is in the tree. max - return the maximum value in the tree min - return the minimum value in the tree Test each method to ensure that it works properly.

Explanation / Answer

/*
* Java Program to Implement Binary Tree
*/

import java.util.Scanner;

/* Class BTNode */
class BTNode {
   BTNode left, right;
   int data;

   /* Constructor */
   public BTNode() {
       left = null;
       right = null;
       data = 0;
   }

   /* Constructor */
   public BTNode(int n) {
       left = null;
       right = null;
       data = n;
   }

   /* Function to set left node */
   public void setLeft(BTNode n) {
       left = n;
   }

   /* Function to set right node */
   public void setRight(BTNode n) {
       right = n;
   }

   /* Function to get left node */
   public BTNode getLeft() {
       return left;
   }

   /* Function to get right node */
   public BTNode getRight() {
       return right;
   }

   /* Function to set data to node */
   public void setData(int d) {
       data = d;
   }

   /* Function to get data from node */
   public int getData() {
       return data;
   }
}

/* Class BT */
class BT {
   private BTNode root;

   /* Constructor */
   public BT() {
       root = null;
   }

   /* Function to check if tree is empty */
   public boolean isEmpty() {
       return root == null;
   }

   /* Functions to insert data */
   public void insert(int data) {
       root = insert(root, data);
   }

   /* Function to insert data recursively */
   private BTNode insert(BTNode node, int data) {
       if (node == null)
           node = new BTNode(data);
       else {
           if (node.getRight() == null)
               node.right = insert(node.right, data);
           else
               node.left = insert(node.left, data);
       }
       return node;
   }

   /* Function to count number of nodes */
   public int countNodes() {
       return countNodes(root);
   }

   /* Function to count number of nodes recursively */
   private int countNodes(BTNode r) {
       if (r == null)
           return 0;
       else {
           int l = 1;
           l += countNodes(r.getLeft());
           l += countNodes(r.getRight());
           return l;
       }
   }

   /* Function to search for an element */
   public boolean search(int val) {
       return search(root, val);
   }

   /* Function to search for an element recursively */
   private boolean search(BTNode r, int val) {
       if (r.getData() == val)
           return true;
       if (r.getLeft() != null)
           if (search(r.getLeft(), val))
               return true;
       if (r.getRight() != null)
           if (search(r.getRight(), val))
               return true;
       return false;
   }

   /* Function for inorder traversal */
   public void inorder() {
       inorder(root);
   }

   private void inorder(BTNode r) {
       if (r != null) {
           inorder(r.getLeft());
           System.out.print(r.getData() + " ");
           inorder(r.getRight());
       }
   }

   /* Function for preorder traversal */
   public void preorder() {
       preorder(root);
   }

   private void preorder(BTNode r) {
       if (r != null) {
           System.out.print(r.getData() + " ");
           preorder(r.getLeft());
           preorder(r.getRight());
       }
   }

   /* Function for postorder traversal */
   public void postorder() {
       postorder(root);
   }

   private void postorder(BTNode r) {
       if (r != null) {
           postorder(r.getLeft());
           postorder(r.getRight());
           System.out.print(r.getData() + " ");
       }
   }

   /* Function for postorder traversal */

   public void minValue() {
       minValue(root);
   }

   public void minValue(BTNode r) {
       while (r.left != null) {
           r = r.left;
       }
       System.out.print(r.getData() + " ");
   }

   /* Function for postorder traversal */

   public void maxValue() {
       maxValue(root);
   }

   public void maxValue(BTNode r) {
       while (r.right != null) {
           r = r.right;
       }
       System.out.print(r.getData() + " ");
   }

}

Main Application :

/* Class BinaryTree */
import java.util.Scanner;
public class BinaryTree
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
/* Creating object of BT */
BT bt = new BT();
/* Perform tree operations */
System.out.println("Binary Tree Test ");
char ch;
do
{
System.out.println(" Binary Tree Operations ");
System.out.println("1. insert ");
System.out.println("2. search");
System.out.println("3. count nodes");
System.out.println("4. check empty");

int choice = scan.nextInt();
switch (choice)
{
case 1 :
System.out.println("Enter integer element to insert");
bt.insert( scan.nextInt() );   
break;
case 2 :
System.out.println("Enter integer element to search");
System.out.println("Search result : "+ bt.search( scan.nextInt() ));
break;
case 3 :
System.out.println("Nodes = "+ bt.countNodes());
break;   
case 4 :
System.out.println("Empty status = "+ bt.isEmpty());
break;
default :
System.out.println("Wrong Entry ");
break;   
}
/* Display tree */
System.out.print(" Post order : ");
bt.postorder();
System.out.print(" Pre order : ");
bt.preorder();
System.out.print(" In order : ");
bt.inorder();
System.out.print(" Max : ");
bt.maxValue();
System.out.print(" Min : ");
bt.minValue();
System.out.println(" Do you want to continue (Type y or n) ");
ch = scan.next().charAt(0);
} while (ch == 'Y'|| ch == 'y');   
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote