Binary tree traversal - recursion - java
public class TreeTraversalRec {
public void preOrder(TreeNode root) {
if (root != null) {
System.out.println(root.getData());
preOrder(root.getLeft());
preOrder(root.getRight());
}
}
public void inOrder(TreeNode root) {
if (root != null) {
inOrder(root.getLeft());
System.out.println(root.getData());
inOrder(root.getRight());
}
}
public void postOrder(TreeNode root) {
if (root != null) {
postOrder(root.getLeft());
postOrder(root.getRight());
System.out.println(root.getData());
}
}
}
class TreeNode{
private String data;
private TreeNode left;
private TreeNode right;
public String getData() {
return data;
}
public TreeNode setData(String data) {
this.data = data;
return this;
}
public TreeNode getLeft() {
return left;
}
public TreeNode setLeft(TreeNode left) {
this.left = left;
return this;
}
public TreeNode getRight() {
return right;
}
public TreeNode setRight(TreeNode right) {
this.right = right;
return this;
}
}
---------------------
Testing:
package ds.trees;
public class TreeTraversalRecTest {
TreeTraversalRec treeTraversalRec;
TreeNode a;
@Before
public void init(){
a = new TreeNode();
TreeNode b = new TreeNode();
TreeNode c = new TreeNode();
TreeNode d = new TreeNode();
TreeNode e = new TreeNode();
TreeNode f = new TreeNode();
TreeNode g = new TreeNode();
g.setData("g");
f.setData("f");
e.setData("e");
d.setData("d").setLeft(f);
c.setData("c").setRight(g);
b.setData("b").setLeft(d).setRight(e);
a.setData("a").setLeft(b).setRight(c);
treeTraversalRec = new TreeTraversalRec();
}
@org.junit.Test
public void testPreOrder() throws Exception {
System.out.println("PreOrder");
treeTraversalRec.preOrder(a);
}
@org.junit.Test
public void testInOrder() throws Exception {
System.out.println("InOrder");
treeTraversalRec.inOrder(a);
}
@org.junit.Test
public void testPostOrder() throws Exception {
System.out.println("PostOrder");
treeTraversalRec.postOrder(a);
}
}
------------------------
Github
https://github.com/sujjjith/DS/blob/master/src/test/java/ds/trees/TreeTraversalRecTest.java
https://github.com/sujjjith/DS/blob/master/src/main/java/ds/trees/TreeTraversalRec.java
public void preOrder(TreeNode root) {
if (root != null) {
System.out.println(root.getData());
preOrder(root.getLeft());
preOrder(root.getRight());
}
}
public void inOrder(TreeNode root) {
if (root != null) {
inOrder(root.getLeft());
System.out.println(root.getData());
inOrder(root.getRight());
}
}
public void postOrder(TreeNode root) {
if (root != null) {
postOrder(root.getLeft());
postOrder(root.getRight());
System.out.println(root.getData());
}
}
}
class TreeNode{
private String data;
private TreeNode left;
private TreeNode right;
public String getData() {
return data;
}
public TreeNode setData(String data) {
this.data = data;
return this;
}
public TreeNode getLeft() {
return left;
}
public TreeNode setLeft(TreeNode left) {
this.left = left;
return this;
}
public TreeNode getRight() {
return right;
}
public TreeNode setRight(TreeNode right) {
this.right = right;
return this;
}
}
---------------------
Testing:
package ds.trees;
public class TreeTraversalRecTest {
TreeTraversalRec treeTraversalRec;
TreeNode a;
@Before
public void init(){
a = new TreeNode();
TreeNode b = new TreeNode();
TreeNode c = new TreeNode();
TreeNode d = new TreeNode();
TreeNode e = new TreeNode();
TreeNode f = new TreeNode();
TreeNode g = new TreeNode();
g.setData("g");
f.setData("f");
e.setData("e");
d.setData("d").setLeft(f);
c.setData("c").setRight(g);
b.setData("b").setLeft(d).setRight(e);
a.setData("a").setLeft(b).setRight(c);
treeTraversalRec = new TreeTraversalRec();
}
@org.junit.Test
public void testPreOrder() throws Exception {
System.out.println("PreOrder");
treeTraversalRec.preOrder(a);
}
@org.junit.Test
public void testInOrder() throws Exception {
System.out.println("InOrder");
treeTraversalRec.inOrder(a);
}
@org.junit.Test
public void testPostOrder() throws Exception {
System.out.println("PostOrder");
treeTraversalRec.postOrder(a);
}
}
------------------------
Github
https://github.com/sujjjith/DS/blob/master/src/test/java/ds/trees/TreeTraversalRecTest.java
https://github.com/sujjjith/DS/blob/master/src/main/java/ds/trees/TreeTraversalRec.java
Comments
Post a Comment