//利用栈
void PostOrder(BiTree T)
{
InitStack(S);
P = T;
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;
push(S, p);
p = p->lchild;
}
else
{
pop(S, p);
visit(p->data); //访问p所指的结点
r = p;
p = NULL;
}
}
}
}
非递归后序遍历
最新推荐文章于 2025-04-28 16:56:44 发布