Program for creating binary search tree using recursive method
private void addNode(Node node, int n) { if (n < node.data) { if (node.left != null) { addNode(node.left, n); } else { node.left = new Node(n); } } else if (n > node.data) { if (node.right != null) { addNode(node.right, n); } else { node.right = new Node(n); } } else { System.out.println("WARNING: Number exists already"); } }
Below is the 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 elements in the tree using recursion */ public void add(int n) { if (root == null) { root = new Node(n); } else { addNode(root, n); } } private void addNode(Node node, int n) { if (n < node.data) { if (node.left != null) { addNode(node.left, n); } else { node.left = new Node(n); } } else if (n > node.data) { if (node.right != null) { addNode(node.right, n); } else { node.right = new Node(n); } } else { System.out.println("WARNING: Number exists already"); } } public void print() { inorderPrint(root); } private void inorderPrint(Node node) { if (node != null) { inorderPrint(node.left); System.out.print(" [" + node.data + "] "); inorderPrint(node.right); } } }
Testing the tree with the client program
package programs; public class Test { public static void main(String[] args) { BST tree = new 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