非递归方法后序遍历二叉树

while(p || !StackEmpty(S))
{
    if(p)
    {
        push(S,p);
        p = p->lchild;
    }
    else if(GetTop(S)->rchild)
    {
        p=GetTop->rchild;
    }
    else if(!GetTop(S)->rchild)
    {
        while(1)
        {
            pop(S,p);
            visit(p);
            p=GetTop(S);
            if(!p->rchild)
                continue;
            p=p->rchild;
            break;
        }
    }
}

 

posted @ 2018-07-08 16:21  Alexzzzz  阅读(128)  评论(0编辑  收藏  举报