D:\CurrentProjects\SearsInterviewCode\src\java\binary_tree_traverse\SameTreeTraverse.java
  1 /*
  2  * To change this template, choose Tools | Templates
  3  * and open the template in the editor.
  4  */
  5 
  6 package binary_tree_traverse;
  7 
  8 import java.util.Queue;
  9 import java.util.LinkedList;
 10 
 11 /**
 12  *
 13  * @author sameldin
 14  */
 15 public class SameTreeTraverse
 16 {
 17     public SameTreeTraverse()
 18     {
 19         
 20     }
 21     //==========================================================
 22     //==========================================================
 23     public static void preorder(SamNode n)
 24     {  
 25         if (n != null)
 26         {
 27             System.out.print(n.node_ID + " ");
 28             preorder(n.getLeft());
 29             preorder(n.getRight());
 30         }
 31     }
 32     //==========================================================
 33     //==========================================================
 34     public static void inorder(SamNode n)
 35     {
 36         if (n != null)
 37         {
 38             inorder(n.getLeft());
 39             System.out.print(n.node_ID + " ");
 40             inorder(n.getRight());
 41         }
 42     }
 43     //==========================================================
 44     //==========================================================
 45     public static void postorder(SamNode n)
 46     {
 47         if (n != null)
 48         {
 49             postorder(n.getLeft());
 50             postorder(n.getRight());
 51             System.out.print(n.node_ID + " ");
 52         }
 53     }
 54     //==========================================================
 55     //==========================================================
 56     public static void levelorder(SamNode n)
 57     {
 58         Queue<SamNode> nodequeue = new LinkedList<SamNode>();
 59 
 60         if (n != null)   
 61             nodequeue.add(n);
 62         
 63         while (!nodequeue.isEmpty())
 64         {
 65             SamNode next = nodequeue.remove();
 66             System.out.print(next.node_ID + " ");
 67             if (next.getLeft() != null)
 68             {
 69                 nodequeue.add(next.getLeft());
 70             }
 71             if (next.getRight() != null)
 72             {
 73                 nodequeue.add(next.getRight());
 74             }
 75         }
 76     }
 77     //==========================================================
 78     //==========================================================
 79     public static void main(final String[] args)
 80     {
 81         SamNode one = new SamNode(1);
 82         SamNode two = new SamNode(2);  
 83         SamNode three = new SamNode(3);
 84         SamNode four = new SamNode(4);
 85         SamNode five = new SamNode(5);
 86         SamNode six = new SamNode(6);
 87         SamNode seven = new SamNode(7);
 88         SamNode eight = new SamNode(8);
 89         SamNode nine = new SamNode(9);
 90         //======================================
 91         one.setLeft(two);
 92         one.setRight(three);
 93         two.setLeft(four);
 94         two.setRight(five);  
 95         three.setLeft(six);
 96         four.setLeft(seven);
 97         six.setLeft(eight);
 98         six.setRight(nine);
 99         //==============    preorder   ========================
100         System.out.println("==============    Start   ========================\n");
101         System.out.println("==============    preorder -Left  ========================");
102         preorder(one);
103         System.out.println();
104         //===============   inorder =======================
105         System.out.println("==============    inorder   ========================");
106         inorder(one);
107         System.out.println();
108         //===============   postorder   =======================
109         System.out.println("==============    postorder - Right  ========================");
110         postorder(one);
111         System.out.println();
112         //===============   levelorder  =======================
113         System.out.println("==============    levelorder   ========================");
114         levelorder(one);
115         System.out.println("\n==============    end   ========================");
116 
117     }
118 }
119