void PostOrder(BiTree T) //后序遍历二叉树非递归算法
{
InitStack(S);
BiTree p = T;
r=NULL;
while(p||!IsEmpty(S)){
if(p){
Push(S,p);
p = p->lchild;
}
else
{
GetTop(S,p);
if(p->rchild && p != r){
p = p->rchild;
Push(S,p);
p = p->lchild;
}
else
{
Pop(S,p);
visit(p->data);
r = p;
p = NULL;
}
}
}
}
仅供参考,初级学习,写的不好请指教。