二叉树问题
void npreorder(bnode *BT)
/*用非递归的方法前序遍历以为根结点的二叉树*/
{bnode *stack[MAXNODE], *p;
int top;
if(BT==NULL)return;
top=0;
p=BT;
while(!(p==NULL&&top==0))/*这一句我看不懂,top不为零怎么会执行下去,知道是书
中错误还是我出了毛病????!!!*/
{
while (p!==NULL) /*将当前指针p压栈*/
{visit(BT);
if(top<(MAXNODE-1))
{
STACK[top]=p;
top++;
}
else
{prinft("栈溢出");return;}
p=p->lchild;
}
if(top==-1)return;
else
{
top--;/*从栈中弹出栈顶元素*/
p=stack[top];
p=p->rchild;
}
}
}