Thursday, May 24, 2012

Binary Search Tree implementation using Linked Lists in Java


package LinkList;


/**
 * @author Naveen Kumar
 */


public class LinkListTest {
    static node n, root;
    public static void main(String args[])
    {
        if(n==null)
            System.out.println("node is null");
        int[] elements = {1,1,2,3,2,2,5,4,4,6,5,6,7,8,7,9};
       
        for(int i=0;i<elements.length;i++)
        {
            insert(elements[i], root);
            display(root);
            System.out.println();
        }  
    }
   
    static void insert(int a, node n)
    {
        if(root==null)
        {
            root = new node();
            root.data = a;
        }
        else
        {
            if(a<n.data)
            {
                if(n.left!=null)
                    insert(a,n.left);
                else
                {
                    node temp = new node();
                    temp.data = a;
                    n.left = temp;
                }
            }
            else if(a>n.data)
            {
                if(n.right!=null)
                    insert(a,n.right);
                else
                {
                    node temp = new node();
                    temp.data = a;
                    n.right = temp;
                }
            }
            else if(a==n.data)
                n.count++;      
        }
    }
   
    static void display(node n)
    {
        if(n==null)
            return;
        display(n.left);
        System.out.print(n.data+"\t");
        display(n.right);
    }
}


class node
{
    int data;
    int count;
    node left;
    node right;
   
    public node()
    {
        this.left = null;
        this.right = null;
        this.data = 0;
        this.count = 0;
    }
}


/*
Used traversal type is inorder traversal
as per my application requirement I skipped multiple occurances
*/
OUTPUT:

run:
node is null
1
1
1 2
1 2 3
1 2 3
1 2 3
1 2 3 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
BUILD SUCCESSFUL (total time: 0 seconds)

No comments:

Post a Comment