Categories
Algorithm Algorithms & Design Sort

Tree Sort

public class TreeSort {

	public static void main(String[] args) {

		  int arr[] = {5, 4, 7, 2, 11,14,12,1};
		  System.out.println("printing the array");
		  printArray(arr);
		  
		  Tree tree = new Tree();;
		
		  //Build the Tree
		  for(int i = 0; i<arr.length;i++){
		  tree.insert(arr[i]);
		  }
		  
		  System.out.println("built the binary tree");
		  
		  tree.inOrderTraverse(tree.root);
		  
		 
		  
		  
		  
	}

	static void printArray(int arr[])
    {
        int n = arr.length;
        for (int i = 0; i < n; ++i)
            System.out.print(arr[i] + " ");
        System.out.println();
    }
}

class Tree {
	
	TreeNode root = null;
	
	public void insert(int item){
		
		if(root == null){
			
			root = new TreeNode(item);
			
		} else {
			insertAsChild(item,root);
		}
	}
	
	public void inOrderTraverse(TreeNode node){
		
		if(node.getLeft()!=null)
			inOrderTraverse(node.getLeft());
		if(node!=null)
			System.out.print(node.getKey()+" ");
		if(node.getRight()!=null)
			inOrderTraverse(node.getRight());
		
		
	}
	
	private void insertAsChild(int item, TreeNode node){
		System.out.println("insertAsChild::"+item);
		  if(node.getKey()>item){
				//insert to left child
			  	if(node.getLeft()==null){
			  		node.setLeft(new TreeNode(item));
			  	} else {
			  		insertAsChild(item, node.getLeft());
			  	}
			} else {
				//insert to right child
				if(node.getRight()==null){
					node.setRight(new TreeNode(item));
			  	} else {
			  		insertAsChild(item, node.getRight());
			  	}
			}
	}
}


class TreeNode {

int key;
TreeNode left, right;

public TreeNode(int item){
	
	key = item;
	left = right = null;
}

public int getKey() {
	return key;
}

public void setKey(int key) {
	this.key = key;
}

public TreeNode getLeft() {
	return left;
}

public void setLeft(TreeNode left) {
	this.left = left;
}

public TreeNode getRight() {
	return right;
}

public void setRight(TreeNode right) {
	this.right = right;
}
	
	
}

Output :


printing the array
5 4 7 2 11 14 12 1 
insertAsChild::4
insertAsChild::7
insertAsChild::2
insertAsChild::2
insertAsChild::11
insertAsChild::11
insertAsChild::14
insertAsChild::14
insertAsChild::14
insertAsChild::12
insertAsChild::12
insertAsChild::12
insertAsChild::12
insertAsChild::1
insertAsChild::1
insertAsChild::1
built the binary tree
1 2 4 5 7 11 12 14 

Leave a comment

Design a site like this with WordPress.com
Get started