forked from Shashwat-Sahu/CP-DSA
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathBST_TRAVERSAL.java
92 lines (82 loc) · 2.47 KB
/
BST_TRAVERSAL.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
81
82
83
84
85
86
87
88
89
90
91
92
//define node of the BST
class Node {
int key;
Node left, right;
public Node(int data){
key = data;
left = right = null;
}
}
//BST class
class BST_class {
// BST root node
Node root;
BST_class(){
root = null;
}
//PostOrder Traversal - Left:Right:rootNode (LRn)
void postOrder(Node node) {
if (node == null)
return;
// first traverse left subtree recursively
postOrder(node.left);
// then traverse right subtree recursively
postOrder(node.right);
// now process root node
System.out.print(node.key + " ");
}
// InOrder Traversal - Left:rootNode:Right (LnR)
void inOrder(Node node) {
if (node == null)
return;
//first traverse left subtree recursively
inOrder(node.left);
//then go for root node
System.out.print(node.key + " ");
//next traverse right subtree recursively
inOrder(node.right);
}
//PreOrder Traversal - rootNode:Left:Right (nLR)
void preOrder(Node node) {
if (node == null)
return;
//first print root node first
System.out.print(node.key + " ");
// then traverse left subtree recursively
preOrder(node.left);
// next traverse right subtree recursively
preOrder(node.right);
}
// Wrappers for recursive functions
void postOrder_traversal() {
postOrder(root); }
void inOrder_traversal() {
inOrder(root); }
void preOrder_traversal() {
preOrder(root); }
}
class Main{
public static void main(String[] args) {
//construct a BST
BST_class tree = new BST_class();
/* 45
// \\
10 90
// \\
7 12 */
tree.root = new Node(45);
tree.root.left = new Node(10);
tree.root.right = new Node(90);
tree.root.left.left = new Node(7);
tree.root.left.right = new Node(12);
//PreOrder Traversal
System.out.println("BST => PreOrder Traversal:");
tree.preOrder_traversal();
//InOrder Traversal
System.out.println("\nBST => InOrder Traversal:");
tree.inOrder_traversal();
//PostOrder Traversal
System.out.println("\nBST => PostOrder Traversal:");
tree.postOrder_traversal();
}
}