-
Notifications
You must be signed in to change notification settings - Fork 0
/
BinaryTree.java
80 lines (65 loc) · 1.72 KB
/
BinaryTree.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.keshav.ctci.trees;
/*
Binary Tree implimentation.
Node contains left,right, val.
Interface:
- insert : Need to explicitly call insert left and right of root. So this is prob not needed?
- traversals: inorder, preorder, post order.
*/
public class BinaryTree {
private BTNode root;
public BinaryTree(int val) {
root = new BTNode(val);
}
public void insertLeft(int val) {
root.insertLeft(val);
}
public void insertRight(int val) {
root.insertRight(val);
}
public void setLeft(BTNode n) {
root.setLeft(n);
}
public void setRight(BTNode n) {
root.setRight(n);
}
public void preTraverse() {
if(root == null){
System.out.println("::Empty tree::");
}
root.preTraverse();
}
public void inTraverse() {
if(root == null){
System.out.println("::Empty tree::");
}
root.inTraverse();
}
public void postTraverse() {
if(root == null){
System.out.println("::Empty tree::");
}
root.postTraverse();
}
@Override
public String toString() {
return "BinaryTree{" +
"root=" + root +
'}';
}
public boolean balanced() {
return root.balanced();
}
public static void main(String args[]) {
BinaryTree tr = new BinaryTree(10);
tr.insertRight(13);
BTNode leftSubTree = new BTNode(4);
leftSubTree.insertLeft(12);
leftSubTree.insertRight(-100);
tr.setLeft(leftSubTree);
System.out.println(tr);
// tr.preTraverse();
// tr.inTraverse();
// tr.postTraverse();
}
}