我写了一段前序遍历代码。可就是不能输出结果:
void preNo_RecursiveOrder(LPTREE root)
{
if(root)
return;
//准备栈
LPTREE stack[10];//存储每次打印结点的位置
int stackTop = -1;//栈顶标记
LPTREE Pmove = root;//从根结点开始打印(定义一个移动指针)
while(stackTop != -1 || Pmove)
{
//找到最左边
while(Pmove)
{
printf("%c %*s",Pmove->data,4," ");//打印走过的结点
printf("本行为: %d\n",__LINE__);
stack[++stackTop] = Pmove;//把路径入栈
Pmove = Pmove->lChild;//遍历到最左边
}
//如果无路可走
if(stackTop != -1)
{
Pmove = stack[stackTop];//获取栈顶元素
stackTop--;//出栈
Pmove = Pmove->rChild;
}
}
}