思路:
调用栈,树非空栈非空时,树非空,左子树全部进栈,树空,出栈顶元素右子树进栈。
void InOrder(BiTree T){
InitStack(S); //调用栈
BiTree p=T;
while(p||!IsEmpty(S)){ //树有数值或栈非空操作
if(p){ //左子树全部进栈
Push(S,p);
p=p->lchild;
}
else{ //树无值出栈,访问出栈元素,右子树进栈
Pop(S,p);
visit(p); //***
p=p->rchild;
}
}
}