Sunday, 7 February 2016

Inorder Traversal in java without recursion

void Inorder(Node root) {
    Node rt = new Node();
    rt=root;
         Node[] n = new Node[100];
        int i =-1;
    if(rt.left==null&&rt.right==null)
            System.out.println(rt.data);
           else{
               while(rt.left!=null||rt.right!=null||i!=-1){
                if(rt.left!=null){
                         i++;
                    n[i]=rt;
                    rt= rt.left;
                   }
            else if(rt.right!=null){
                System.out.print(rt.data + " ");
                rt= rt.right;
            }
    else{
        System.out.print(rt.data + " ");
        if(i!=-1){
            rt=n[i];
                System.out.print(rt.data + " ");
            i--;
            if(rt.right!=null) {rt= rt.right;
                              if(rt.left==null&&rt.right==null&&i==-1) System.out.print(rt.data);
                               }
            else if(i!=-1) rt = n[i];
                else rt.left=null;
                   
        }
    }
}
}
}

No comments:

Post a Comment