Insertion in binary search tree using recursion in java

Java program for Insertion in binary search tree using recursion. Here more information.

// Java program for
// Insertion in binary search tree by using recursion
class TreeNode
{
	public int data;
	public TreeNode left, right;
	public TreeNode(int data)
	{
		this.data = data;
		this.left = null;
		this.right = null;
	}
}
public class BinarySearchTree
{
	public TreeNode root;
	public BinarySearchTree()
	{
		this.root = null;
	}
	// Insert a node element
	public TreeNode addNode(TreeNode node, int data)
	{
		if (node != null)
		{
			if (node.data >= data)
			{
				//When new element is smaller or equal to current node
				node.left = addNode(node.left, data);
			}
			else
			{
				//When new element is higher to current node
				node.right = addNode(node.right, data);
			}
			// important to manage node node
			return node;
		}
		else
		{
			return new TreeNode(data);
		}
	}
	// Display preorder
	public void preorder(TreeNode node)
	{
		if (node != null)
		{
			// Display node value
			System.out.print("  " + node.data);
			// Visit to left subtree
			preorder(node.left);
			// Visit to right subtree
			preorder(node.right);
		}
	}
	public void inorder(TreeNode node)
	{
		if (node != null)
		{
			// Visit to left subtree
			inorder(node.left);
			// Display node value
			System.out.print("  " + node.data);
			// Visit to right subtree
			inorder(node.right);
		}
	}
	public void postorder(TreeNode node)
	{
		if (node != null)
		{
			// Visit to left subtree
			postorder(node.left);
			// Visit to right subtree
			postorder(node.right);
			// Display node value
			System.out.print("  " + node.data);
		}
	}
	public static void main(String[] args)
	{
		BinarySearchTree tree = new BinarySearchTree();
		/*
		         10
		        / \
		       /   \
		      4     15
		     / \   /
		    3   5 12
		    -------------
		    Build binary search tree
		
		*/
		tree.root = tree.addNode(tree.root, 10);
		tree.addNode(tree.root, 4);
		tree.addNode(tree.root, 3);
		tree.addNode(tree.root, 5);
		tree.addNode(tree.root, 15);
		tree.addNode(tree.root, 12);
		// Display tree nodes
		System.out.println("Preorder ");
		tree.preorder(tree.root);
		System.out.println("\nInorder ");
		tree.inorder(tree.root);
		System.out.println("\nPostorder ");
		tree.postorder(tree.root);
	}
}

Output

Preorder
  10  4  3  5  15  12
Inorder
  3  4  5  10  12  15
Postorder
  3  5  4  12  15  10


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved