Tweet
import java.io.*;
class TreeNode
{
TreeNode left,right;
int data;
public TreeNode()
{
data=0;
left=right=null;
}
public TreeNode(int n)
{
data=n;
left=right=null;
}
public void disp()
{
System.out.println(data + " ");
}
public TreeNode getleft()
{
return left;
}
public TreeNode getright()
{
return right;
}
public void setdata(int d)
{
data=d;
}
public int getdata()
{
return data;
}
}
class BinaryTree
{
TreeNode root;
public BinaryTree()
{
root=null;
}
public int countnodes()
{
return countnodes(root);
}
private int countnodes(TreeNode r)
{
if(r==null)
return 0;
else
{
int l=1;
l=l+countnodes(r.getleft());
l=l+countnodes(r.getright());
return l;
}
}
public boolean search(int value)
{
return search(root,value);
}
private boolean search(TreeNode r,int val)
{
boolean found=false;
while((r!=null) && !found)
{
int rval=r.getdata();
if(val < rval)
r=r.getleft();
else if(val > rval)
r=r.getright();
else
{
found=true;
break;
}
found=search(r,val);
}
return found;
}
public void inoder()
{
inorder(root);
}
private void inorder(TreeNode r)
{
if(r!=null)
{
inorder(r.getleft());
System.out.print(r.getdata() + " ");
inorder(r.getright());
}
}
public void preoder()
{
preorder(root);
}
private void preorder(TreeNode r)
{
if(r!=null)
{
System.out.print(r.getdata() + " ");
preorder(r.getleft());
preorder(r.getright());
}
}
public void postoder()
{
postorder(root);
}
private void postorder(TreeNode r)
{
if(r!=null)
{
postorder(r.getleft());
postorder(r.getright());
System.out.print(r.getdata() + " ");
}
}
}
class bttest
{
protected static BinaryTree bt;
public static void main(String args[])
{
int val;
bt=new BinaryTree();
System.out.println("\nPost order traversal of the tree is : ");
bt.postorder();
System.out.println("\nPre order traversal of the tree is : ");
bt.preorder();
System.out.println("\nInorder order traversal of the tree is : ");
bt.inorder();
int l=bt.countnodes();
System.out.println("\nNo. of nodes : " +l);
try
{
System.out.println("\nEnter search item : ");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
val=Integer.parseInt(br.readLine());
if(bt.search(val))
System.out.println("Item exists in the tree");
else
System.out.println("Item does not exist in the tree");
}
catch(Exception e)
{
System.out.println(e);
}
System.out.println("\n");
}
}
/* Program to implement search function, count nodes function and three traversal functions of a binary tree using recursion */