Question

using java to write,show me the output. please write some common.

You CAN NOT use inbuild functions for Tree ADT operations.

using code below to finsih

3. Assume a BST considers the keys (integer) and no values. Here keys are stored in each node of the tree. Consider the follo

public class Main
{
   public static void main(String[] args) {
       BinaryTree tree = new BinaryTree();
tree.root = new Node(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.root.left.left = new Node(4);
tree.root.left.right = new Node(5);
tree.root.right.left = new Node(6);
tree.root.right.right = new Node(7);
tree.root.left.left.left = new Node(8);
tree.root.left.left .right= new Node(9);
tree.root.left.right.left = new Node(10);
tree.root.left.right .right= new Node(11);
tree.root.right.left.right = new Node(12);
tree.root.right.left.left = new Node(13);
tree.root.right.right.left = new Node(14);
tree.root.right.right.right = new Node(15);
  
  
System.out.println("Preorder traversal of binary tree is ");
tree.printPreorder();
  
System.out.println("\nInorder traversal of binary tree is ");
tree.printInorder();
  
System.out.println("\nPostorder traversal of binary tree is ");
tree.printPostorder();
   }
}
class Node
{
int key;
Node left, right;
  
public Node(int item)
{
key = item;
left = right = null;
}
}
  
class BinaryTree
{
// Root of Binary Tree
Node root;
  
BinaryTree()
{
root = null;
}
  
/* Given a binary tree, print its nodes according to the
"bottom-up" postorder traversal. */
void printPostorder(Node node)
{
if (node == null)
return;
  
// first recur on left subtree
printPostorder(node.left);
  
// then recur on right subtree
printPostorder(node.right);
  
// now deal with the node
System.out.print(node.key + " ");
}
  
/* Given a binary tree, print its nodes in inorder*/
void printInorder(Node node)
{
if (node == null)
return;
  
/* first recur on left child */
printInorder(node.left);
  
/* then print the data of node */
System.out.print(node.key + " ");
  
/* now recur on right child */
printInorder(node.right);
}
  
/* Given a binary tree, print its nodes in preorder*/
void printPreorder(Node node)
{
if (node == null)
return;
  
/* first print data of node */
System.out.print(node.key + " ");
  
/* then recur on left sutree */
printPreorder(node.left);
  
/* now recur on right subtree */
printPreorder(node.right);
}
  
// Wrappers over above recursive functions
void printPostorder() { printPostorder(root); }
void printInorder() { printInorder(root); }
void printPreorder() { printPreorder(root); }
}

0 0
Add a comment Improve this question Transcribed image text
Answer #1


  
   //note: insertion deletion search takes o(n) time in worst case cmoplexity for a bst  
  
   public class Bst{
      
       class Node {
   int key;
   Node left, right;
  
   public Node(int item) {
   key = item;
   left = right = null;
   }
   }
  
   // Root of BST
   static Node root;
  
   // Constructor
   MyInvestment() {
   root = null;
   }
  
   // This method mainly calls insertRec()
   void insert(int key) {
   root = insertRec(root, key);
   }
  
   /* A recursive function to insert a new key in BST */
   Node insertRec(Node root, int key) {
  
   /* If the tree is empty, return a new node */
   if (root == null) {
   root = new Node(key);
   return root;
   }
  
   /* Otherwise, recur down the tree */
   if (key < root.key)
   root.left = insertRec(root.left, key);
   else if (key > root.key)
   root.right = insertRec(root.right, key);
  
   /* return the (unchanged) node pointer */
   return root;
   }
  
   // This method mainly calls InorderRec()
   void inorder() {
   inorderRec(root);
   }
  
   // A utility function to do inorder traversal of BST
   void inorderRec(Node root) {
   if (root != null) {
   inorderRec(root.left);
   System.out.println(root.key);
   inorderRec(root.right);
   }
   }
  
   static boolean ifNodeExistsbool(int key) {
       boolean exists= ifNodeExists(root, key);
       return exists;
   }
   static boolean ifNodeExists(Node node, int key)
   {
   if (node == null)
   return false;
  
   if (node.key == key)
   return true;
  
   // then recur on left sutree /
   boolean res1 = ifNodeExists(node.left, key);
   if(res1) return true; // node found, no need to look further
  
   // node is not found in left, so recur on right subtree /
   boolean res2 = ifNodeExists(node.right, key);
  
   return res2;
   }
   void deleteKey(int key)
   {
   root = deleteRec(root, key);
   }
  
   /* A recursive function to insert a new key in BST */
   Node deleteRec(Node root, int key)
   {
   /* Base Case: If the tree is empty */
   if (root == null) return root;
  
   /* Otherwise, recur down the tree */
   if (key < root.key)
   root.left = deleteRec(root.left, key);
   else if (key > root.key)
   root.right = deleteRec(root.right, key);
  
   // if key is same as root's key, then This is the node
   // to be deleted
   else
   {
   // node with only one child or no child
   if (root.left == null)
   return root.right;
   else if (root.right == null)
   return root.left;
  
   // node with two children: Get the inorder successor (smallest
   // in the right subtree)
   root.key = minValue(root.right);
  
   // Delete the inorder successor
   root.right = deleteRec(root.right, root.key);
   }
  
   return root;
   }
   int minValue(Node root)
   {
   int minv = root.key;
   while (root.left != null)
   {
   minv = root.left.key;
   root = root.left;
   }
   return minv;
   }
  
      
           public static void main(String[] args) throws Exception {
               Bst tree = new Bst();
           tree.insert(1);
           tree.insert(2);
           tree.insert(3);
           tree.insert(4);
           tree.insert(5);
           tree.insert(6);
           tree.insert(7);
           tree.insert(8);
           tree.insert(9);
           tree.insert(10);
           tree.insert(11);
           tree.insert(12);
           tree.insert(13);
           tree.insert(14);
           tree.insert(15);
          
          
           tree.inorder();
           int key = 5;
          
           if (ifNodeExistsbool( key))
           System.out.println("YES");
           else
           System.out.println("NO");
          
           tree.deleteKey(13);
           System.out.println("Inorder traversal of the modified tree");
           tree.inorder();
          
           Bst tree1 = new Bst();
           tree1.insert(8);
           tree1.insert(12);
           tree1.insert(14);
           tree1.insert(10);
           tree1.insert(4);
           tree1.insert(6);
           tree1.insert(13);
           tree1.insert(11);
           tree1.insert(2);
           tree1.insert(5);
           tree1.insert(9);
           tree1.insert(1);
           tree1.insert(7);
           tree1.insert(3);
           tree1.insert(15);
          
           tree1.inorder();
           int key1 = 5;
          
           if (ifNodeExistsbool( key1))
           System.out.println("YES");
           else
           System.out.println("NO");
          
           tree1.deleteKey(8);
           System.out.println("Inorder traversal of the modified tree");
           tree1.inorder();
          
          
           }
          
           }


      
  
  

Add a comment
Know the answer?
Add Answer to:
using java to write,show me the output. please write some common. You CAN NOT use inbuild...
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. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Can you take a look at my code that why the maxDepth function is not working?...

    Can you take a look at my code that why the maxDepth function is not working? public class BinaryTree {          class Node{        int key;        Node left,right;               public Node(int item) {            key = item;            left = right = null;        }    }       Node root;       public void BinaryTree(){        root = null;    }           void...

  • BST JAVA FILE import java.util.*; public class BST <E extends Comparable <E>> {    private TreeNode<E>...

    BST JAVA FILE import java.util.*; public class BST <E extends Comparable <E>> {    private TreeNode<E> overallRoot;    public BST() {        overallRoot = null;    }    // ************ ADD ************ //    public void add(E addThis) {        if (overallRoot == null) {            overallRoot = new TreeNode<>(addThis);        } else {            add(overallRoot, addThis);        }    }    private TreeNode<E> add(TreeNode<E> node, E addThis) {        if...

  • Please I need help ASAP Java Programing: Binary Search Tree Fully implement the BST class in Listing 25.4 (on page 961 of the 11th Edition of the text). Design and write a (main) driver program to com...

    Please I need help ASAP Java Programing: Binary Search Tree Fully implement the BST class in Listing 25.4 (on page 961 of the 11th Edition of the text). Design and write a (main) driver program to completely test every method in the BST class to ensure the class meets all its requirements. You should read the Listing 25.5: TestBST.java for an idea of what your program should look like. Listing 25.4 BST.java public class BST> extends AbstractTree { protected TreeNode...

  • I am stuck on a data structure problem, I am just going off of Geeks for...

    I am stuck on a data structure problem, I am just going off of Geeks for Geeks for help but I need to print 100 random numbers in the range of [1-200]. I can currently only print 5 numbers. Here is my code: #include <stdio.h> #include <stdlib.h> #include <limits.h> using namespace std; //binary tree has data & left and right child struct node{ int data; struct node *left; struct node *right; }; //create a new node struct node* newNode (int...

  • Using the following implementation of Tree class Node   {   public int iData;              // data item (key)   public...

    Using the following implementation of Tree class Node   {   public int iData;              // data item (key)   public double dData;           // data item   public Node leftChild;         // this node's left child   public Node rightChild;        // this node's right child   public void displayNode()      // display ourself      {      System.out.print('{');      System.out.print(iData);      System.out.print(", ");      System.out.print(dData);      System.out.print("} ");      }   }  // end class Node //------------------------------------------------------------------ import java.io.IOException; import java.util.Stack; public class Tree { private Node root; // first node of tree // ------------------------------------------------------------- public Tree() // constructor { root = null; }...

  • Binary Search Tree Part A: The code attached in this document is a sample code to demonstrate ins...

    Binary Search Tree Part A: The code attached in this document is a sample code to demonstrate insert operation in binary search tree. Please fill in the missing part for the insert method to make the program work. The expected output should be as follows. 20 30 40 50 60 70 80 Part B: Find Lowest Common Ancestor (LCA) of a Binary Search Tree. According to WikiPedia definition , The lowest common ancestor is defined between two nodes v and...

  • I need help to write this code in C++, I am struggling to find max node's parent's right child and max node&#39...

    I need help to write this code in C++, I am struggling to find max node's parent's right child and max node's left child. Node* maxValueNode(Node* node) {    Node* current = node;    while (current && current->right != NULL)        current = current->right;    return current; } void deleteNode(BST* tree, Node* node, Node* parent) {    //TODO - follow the lecture pseudocode to write the deleteNode function    // - returns true if the value was deleted, false if not    // - don't forget to...

  • Question B1 You are given the following Java classes: public class Queue { private static class...

    Question B1 You are given the following Java classes: public class Queue { private static class Node { Object object; Node next; Node () { object = null; next = null; } Node (Object object, Node next) { this.object = object; this.next = next; private Node header; private int size = 0; // size shows the no of elements in queue public Object dequeue () { if (size == 0 ) { return null; else { Object remove_object = header.object;...

  • QUESTION 8   In the _____ traversal, the root is processed first, before its subtrees. breadth first...

    QUESTION 8   In the _____ traversal, the root is processed first, before its subtrees. breadth first preorder postorder inorder 0.10000 points    QUESTION 9 What kind of traversal does the following algorithm (in pseudo-code) describe? Algorithm traversal (root) if (root is not null)      traversal (leftSubTree)      process (root)      traversal (rightSubTree) end if end traversal breadth first preorder inorder postorder 0.10000 points    QUESTION 10 What kind of traversal does the following algorithm (in pseudo-code)  describe? Algorithm traversal (root) if...

  • In this assignment, you will add several methods to the Binary Search Tree. You should have compl...

    In this assignment, you will add several methods to the Binary Search Tree. You should have completed the following three methods in the lab: public void insert(Key key, Value value) public Value get(Key key) public void inorder(Node root) For this assignment, you will implement the following: public void remove(Node root, Key key) public Key getMin(Node n) public Key getMax(Node n) public int height(Node n) The main method contains the statements to check whether your implementation works. You need to change...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT