public class BST_Impl {
BST_Node root=null;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = { 10, 4, 0, 34, 23, -2,-2, 5, 12, 9, 15, };
BST_Impl tree = new BST_Impl();
for (int i = 0; i < arr.length; i++) {
tree.insert(new BST_Node(arr[i]));
}
System.out.println("preorder:");
tree.preorder(tree.root);
System.out.println("inorder:");
tree.inorder(tree.root);
System.out.println("postorder:");
tree.postorder(tree.root);
}
public void inorder(BST_Node node) {
if(node.left!=null) {
inorder(node.left);
}
System.out.println(node.value);
if(node.right!=null) {
inorder(node.right);
}
}
public void preorder(BST_Node node) {
System.out.println(node.value);
if(node.left!=null) {
preorder(node.left);
}
if(node.right!=null) {
preorder(node.right);
}
}
public void postorder(BST_Node node) {
if(node.right!=null) {
postorder(node.right);
}
if(node.left!=null) {
postorder(node.left);
}
System.out.println(node.value);
}
public void insert(BST_Node node) {
BST_Node temp=root;
if(root==null) {
root=node;
}else {
while(temp!=null) { //inserting as leave of a node
if(temp.value>node.value) {
if(temp.left==null) {
temp.left=node;
break;
}
temp=temp.left;
}else if(temp.value
if(temp.right==null) {
temp.right=node;
break;
}
temp=temp.right;
}else {
System.out.println("cannot enter equal number:"+temp.value);
break;
}
}
}
}
}
class BST_Node{
BST_Node left;
BST_Node right;
int value;
public BST_Node( int value) {
this.value=value;
}
}
No comments:
Post a Comment