void InOrder(biTree T){
InitStack(S);biTree p = T;//初始化栈,定义p为循环指针
while(!p||!isEmpty(S)){//当树不为空或栈不为空时
if(p){//一路向左
push(S,p);//将p压入栈中
p=p->lchild;//p指向左孩子
}
else {//直到没有左孩子时
pop(S,p);visit(p);//弹出栈顶元素 ,并访问栈顶元素
p=p->rchild;//p赋值为当前右孩子
}
}
}
递归 非常简单
void InOrder(biTree T){
if(T!=Null){
InOrder(T->lchild);
visit(T);
InOrder(T->rchild);
}
}