实现一个中序遍历非递归算法

解析:

void InOrderUnrec(Bitree *t)
{
    Stack s;
    StackInit(s);
    Bitree *p = t;
    while (p != NULL || !StackEmpty(s))
    {
        while (p != NULL) //遍历左子树
        {
            push(s, p);
            p = p->lchild;
        }
        if (!StackEmpty(s))
        {
            p = pop(s);
            visite(p->data); //访问根结点
            p = p->rchild; //通过下一次循环实现右子树遍历
        }//endif
    }//endwhile
}

你可能感兴趣的:(算法,c++,数据结构)