编写后序遍历二叉树的非递归算法。
void PostOrder(BiTree T){
InitStack(S);
BiTNode *p=T;
BiTNode *r=NULL;
while(p||!IsEmpty(S)){
if(p){
push(S,p);
p=p->lchild;
}
else {
GetTop(S,p);//读栈顶元素非出栈
if(p->rchild&&p->rchild!=r){
p=p->rchild;
else{//弹出结点并访问
pop(S,p);//将节点弹出
visit(p->data);//记录访问过的结点
r=p;
p=NULL;
}
}
}
}