File tree Expand file tree Collapse file tree 1 file changed +114
-0
lines changed Expand file tree Collapse file tree 1 file changed +114
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments