public void nonRecursiveInorder(TNode root) {
NodeStack s = new NodeStack(this.totNode);
while (true) {
while (root != null) {
s.push(root);
//System.out.println()
root = root.left;
}
if (s.isEmpty()) {
break;
}
root = s.pop();
if (root == null) {
break;
}
System.out.print(root.data + " ");
root = root.right;
}
}
public void nonRecursivePreorder(TNode root) {
NodeStack s = new NodeStack(this.totNode);
while (true) {
while (root != null) {
System.out.print(root.data + " ");
s.push(root);
//System.out.println()
root = root.left;
}
if (s.isEmpty()) {
break;
}
root = s.pop();
if (root == null) {
break;
}
root = root.right;
}
}
public void nonRecursivePostorder(TNode root) {
NodeStack s = new NodeStack(this.totNode);
while (true) {
while(root != null){
if(root.right != null)
s.push(root.right);
s.push(root);
root = root.left;
}
if(s.isEmpty())
break;
root = s.pop();
if(root == null)
break;
if(root.right != null && s.top() == root.right){
s.pop();
s.push(root);
root = root.right;
}else{
System.out.print(root.data + " ");
root = null;
}
}
}
For TNode definition, please check my previous post.
No comments:
Post a Comment