From 2cb7f4f77dc3c6aa0e0d865dc3ed8ac5b97830f5 Mon Sep 17 00:00:00 2001 From: Viveka Date: Sun, 23 Aug 2015 22:55:24 +0530 Subject: [PATCH] Create BinarySearchTree.java --- solutions/java/BinarySearchTree.java | 72 ++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 solutions/java/BinarySearchTree.java diff --git a/solutions/java/BinarySearchTree.java b/solutions/java/BinarySearchTree.java new file mode 100644 index 0000000..1d47c28 --- /dev/null +++ b/solutions/java/BinarySearchTree.java @@ -0,0 +1,72 @@ +/* + * Program to create a binary search tree. + * Author: Viveka Aggarwal + */ + +public class BinarySearchTree { + Node root; + public class Node { + Node left; + Node right; + Integer data; + + Node() { + } + + Node(Integer data) { + left = right = null; + this.data = data; + } + } + + BinarySearchTree() { + root = new Node(); + } + + BinarySearchTree(Integer data) { + root = new Node(data); + } + + public void addToTree(Integer data) { + addToTree(root, data); + } + + private void addToTree(Node curr, Integer data) { + if(curr == null) { + curr = new Node(data); + } else if(curr.data.compareTo(data) >= 0) { + if(curr.left == null) + curr.left = new Node(data); + else + addToTree(curr.left, data); + } else { + if(curr.right == null) + curr.right = new Node(data); + else + addToTree(curr.right, data); + } + } + + @Override + public String toString() { + return toString(this.root); + } + + String toString(Node curr) { + if(curr == null) + return ""; + return toString(curr.left) + " " + curr.data + " " + toString(curr.right); + } + + public static void main(String[] args) { + BinarySearchTree tree = new BinarySearchTree(1); + tree.addToTree(5); + tree.addToTree(3); + tree.addToTree(89); + tree.addToTree(43); + tree.addToTree(43); + tree.addToTree(67); + + System.out.println(tree.toString()); + } +}