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

I need writing the following three method recursively (public void traverse(Trav

ID: 3828840 • Letter: I

Question

I need writing the following three method recursively (public void traverse(TraversalType type) & public boolean isPresent(String key) & public static enum TraversalType { PREORDER, INORDER, POSTORDER }). Constructor BST. 'm allowed to have //private Node mRoot; in my BST constructor. The Node is a private class in BST.

public class BST {
  
   private Node mRoot;
  
   public BST()
   {
       Node mRoot = null;
   }
        

public boolean isPresent(String key)
   {
       mRoot = isPresents(mRoot, key);
   }
   private Node isPresents(String key)
   {
       if(mRoot == null)
           return false;
       else
           return mRoot.isPresents(key);
   }

   public void traverse(TraversalType type)
   {
       System.out.println(type + "tree traversal");
       if(mRoot != null mRoot.doTraverse(type));
   }
   private doTravese(TraversalType type)
   {
      
   }

public static enum TraversalType { PREORDER, INORDER, POSTORDER }

{

}

   private class Node
   {
       public Node(String data)
       {
           mData = data;
           mParent = null;
           mLeft = mRight = null;
       }
      
   private String mData;
   private Node mParent;
   private Node mLeft;
   private Node mRight;
   }
}

Explanation / Answer

NOTE : have a look, wrote everything..All the three traversal as well as search

public class BST {
  
       private Node mRoot;
  
       public BST()
       {
           Node mRoot = null;
       }
          

   public boolean isPresent(String key)
       {
           return isPresents(mRoot, key);
       }
       private boolean isPresents(Node mRoot, String key)
       {
           Node curr = mRoot;
           if(curr == null)
               return false;
           else{
                   if(curr.mData.compareTo(key)==0){
                       return true;
                   }else if (curr.mData.compareTo(key)>0)
                       return isPresents(mRoot.mLeft,key);
                   else
                       return isPresents(mRoot.mRight,key);
                 
               }
           }


       public void traverse(TraversalType type)
       {
           System.out.println(type + "tree traversal");
           if(mRoot != null)
               doTraverse(type);
       }
       private void preOrder(Node mRoot)
       {
           if(mRoot != null){
               System.out.println(mRoot.mData + " ");
               preOrder(mRoot.mLeft);
               preOrder(mRoot.mRight);
           }
         
       }
       private void InOrder(Node mRoot)
       {
           if(mRoot != null){
             
               InOrder(mRoot.mLeft);
               System.out.println(mRoot.mData + " ");
               InOrder(mRoot.mRight);
           }
         
       }
       private void postOrder(Node mRoot)
       {
           if(mRoot != null){
             
               postOrder(mRoot.mLeft);
               postOrder(mRoot.mRight);
               System.out.println(mRoot.mData + " ");
           }
         
       }
       private void doTraverse(TraversalType type)
       {
          if(type.equals("PREORDER")){
              preOrder(mRoot);
          
          }
          else if (type.equals("INORDER")){
              InOrder(mRoot);
          }else if (type.equals("POSTORDER")){
              postOrder(mRoot);
          }
       }

   public static enum TraversalType { PREORDER, INORDER, POSTORDER }

   {

   }

       private class Node
       {
           public Node(String data)
           {
               mData = data;
               mParent = null;
               mLeft = mRight = null;
           }
        
       private String mData;
       private Node mParent;
       private Node mLeft;
       private Node mRight;
       }
   }