Program for creating a binary search tree using iterative method
private void addNode(Node node, int n)
{
while (node != null)
{
if(n < node.data)
{
if(node.left != null)
{
node = node.left;
}
else
{
node.left = new Node(n);
return;
}
}
else if(n > node.data)
{
if(node.right != null)
{
node = node.right;
}
else
{
node.right = new Node(n);
return;
}
}
else
{
System.out.println("WARNING: Elements are equal");
return;
}
}
}
Below is he complete program and sample execution.
package programs;
public class BST
{
private class Node
{
Node left = null;
Node right = null;
int data;
Node(int n) {
data = n;
}
}
private Node root = null;
public BST() {
}
/**
* Adds element in the tree using iteration
*/
public void add(int n)
{
if (root == null)
{
root = new Node(n);
}
else
{
addNode(root, n);
}
}
private void addNode(Node node, int n)
{
while (node != null)
{
if(n < node.data)
{
if(node.left != null)
{
node = node.left;
}
else
{
node.left = new Node(n);
return;
}
}
else if(n > node.data)
{
if(node.right != null)
{
node = node.right;
}
else
{
node.right = new Node(n);
return;
}
}
else
{
System.out.println("WARNING: Elements are equal");
return;
}
}
}
/**
* for testing purpose
*/
public void print()
{
inorderPrint(root);
}
private void inorderPrint(Node node)
{
if (node != null)
{
inorderPrint(node.left);
System.out.println(node.data);
inorderPrint(node.right);
}
}
}
Testing the tree using client program
package programs;
public class Test
{
public static void main(String[] args)
{
BST tree = new BST();
tree.add(50);
tree.add(10);
tree.add(20);
tree.add(30);
tree.add(60);
tree.add(55);
tree.add(70);
tree.print();
}
}
Output
No comments :
Post a Comment