Skip to content
This repository was archived by the owner on Dec 12, 2023. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions solutions/java/BinarySearchTree.java
Original file line number Diff line number Diff line change
@@ -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());
}
}