二叉树非递归调用后序遍历
以下为二叉树非递归调用算法遍历,但是我不知道是何解。希望各位高手在每句的后面给注释一下,谢谢了!void PostOrder(BiTree T, Status ( *Visit ) (ElemType e))
{ //
InitStack(S);
while ( T!=NULL || !StackEmpty(S) ){
while ( T != NULL ){
Push(S,T,0);
T = T->lchild;
}
while ( !StackEmpty(S) && GetTopTag(S)==1){
Pop(S, T);
Visit(T->data);
}
if ( !StackEmpty(S) ){
SetTopTag(S, 1); // 设置栈顶标记
T = GetTopPointer(S); // 取栈顶保存的指针
T = T->rchild;
}else break;
}
}