Skip to content

Commit c2b2118

Browse files
authored
Create TreeTraversalDemo.java
1 parent 7b0057d commit c2b2118

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

TreeTraversalDemo.java

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package ds.algo.solution;
2+
3+
import java.util.Stack;
4+
5+
public class TreeTraversalDemo {
6+
7+
public void inOrder(TreeNode node) {
8+
if (node == null) {
9+
return;
10+
}
11+
inOrder(node.left);
12+
System.out.println(node);
13+
inOrder(node.right);
14+
}
15+
16+
public void inOrderNonRecursive(TreeNode node) {
17+
if (node == null) {
18+
return;
19+
}
20+
Stack<TreeNode> stack = new Stack<>();
21+
22+
while (node != null) {
23+
stack.add(node);
24+
node = node.left;
25+
}
26+
27+
TreeNode temp;
28+
while(!stack.isEmpty()) {
29+
temp = stack.pop();
30+
System.out.println(temp);
31+
32+
if (temp.right != null) {
33+
temp = temp.right;
34+
while (temp != null) {
35+
stack.push(temp);
36+
temp = temp.left;
37+
}
38+
}
39+
}
40+
}
41+
42+
public void preOrder(TreeNode node) {
43+
if (node == null) {
44+
return;
45+
}
46+
System.out.println(node);
47+
preOrder(node.left);
48+
preOrder(node.right);
49+
}
50+
51+
public void preOrderNonRecursive(TreeNode node) {
52+
if (node == null) {
53+
return;
54+
}
55+
Stack<TreeNode> stack = new Stack<>();
56+
stack.add(node);
57+
TreeNode temp;
58+
59+
while(!stack.isEmpty()) {
60+
temp = stack.pop();
61+
System.out.println(temp);
62+
if (temp.right != null)
63+
stack.add(temp.right);
64+
if (temp.left != null)
65+
stack.add(temp.left);
66+
67+
}
68+
}
69+
70+
public void postOrder(TreeNode node) {
71+
if (node == null) {
72+
return;
73+
}
74+
postOrder(node.left);
75+
postOrder(node.right);
76+
System.out.println(node);
77+
}
78+
79+
public void postOrderNonRecursive(TreeNode node) {
80+
if (node == null) {
81+
return;
82+
}
83+
}
84+
}
85+
86+
class TreeNode {
87+
88+
int value;
89+
90+
TreeNode left;
91+
92+
TreeNode right;
93+
94+
TreeNode(int val) {
95+
this.value = val;
96+
this.left = null;
97+
this.right = null;
98+
}
99+
100+
public TreeNode addLeft(TreeNode n) {
101+
this.left = n;
102+
return this;
103+
}
104+
105+
public TreeNode addRight(TreeNode n) {
106+
this.right = n;
107+
return this;
108+
}
109+
110+
@Override
111+
public String toString() {
112+
return String.valueOf(this.value);
113+
}
114+
}

0 commit comments

Comments
 (0)