void InOrder2(BiTree T){
InitStack(S); BiTree p=T; //初始化栈S;P为遍历指针
while (p||!IsEmpty(S)){ //栈不空或p不空时循环
if(p){ //一路向左
visit(p); Push(S,p); //当前节点入栈,栈顶元素出栈,
p=p->lchild; //左孩子不空,一直像左走
}else{ //出栈,并转向出栈节点的右子树
Pop(S,p); //访问出栈节点
p=p->rchild; //向右子树走,p赋值为当前节点的右孩子
} //返回while循环继续进入if-else语句
}
}