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;
}
}