Skip to content

Commit 54de34d

Browse files
committed
Merge pull request blakeembrey#2 from Widea/Widea
Create BinarySearchTree.java
2 parents a6d971a + 7364c43 commit 54de34d

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/*
2+
* Program to create a binary search tree.
3+
* Author: Viveka Aggarwal
4+
*/
5+
6+
public class BinarySearchTree {
7+
Node root;
8+
public class Node {
9+
Node left;
10+
Node right;
11+
Integer data;
12+
13+
Node() {
14+
}
15+
16+
Node(Integer data) {
17+
left = right = null;
18+
this.data = data;
19+
}
20+
}
21+
22+
BinarySearchTree() {
23+
root = new Node();
24+
}
25+
26+
BinarySearchTree(Integer data) {
27+
root = new Node(data);
28+
}
29+
30+
public void addToTree(Integer data) {
31+
addToTree(root, data);
32+
}
33+
34+
private void addToTree(Node curr, Integer data) {
35+
if(curr == null) {
36+
curr = new Node(data);
37+
} else if(curr.data.compareTo(data) >= 0) {
38+
if(curr.left == null)
39+
curr.left = new Node(data);
40+
else
41+
addToTree(curr.left, data);
42+
} else {
43+
if(curr.right == null)
44+
curr.right = new Node(data);
45+
else
46+
addToTree(curr.right, data);
47+
}
48+
}
49+
50+
@Override
51+
public String toString() {
52+
return toString(this.root);
53+
}
54+
55+
String toString(Node curr) {
56+
if(curr == null)
57+
return "";
58+
return toString(curr.left) + " " + curr.data + " " + toString(curr.right);
59+
}
60+
61+
public static void main(String[] args) {
62+
BinarySearchTree tree = new BinarySearchTree(1);
63+
tree.addToTree(5);
64+
tree.addToTree(3);
65+
tree.addToTree(89);
66+
tree.addToTree(43);
67+
tree.addToTree(43);
68+
tree.addToTree(67);
69+
70+
System.out.println(tree.toString());
71+
}
72+
}

0 commit comments

Comments
 (0)