非递归中序遍历二叉树

读者手动模拟时需注意叶子节点的左右子树进入循环的情况

func(Tree T){

if(T==NULL){
	printf("树空");
	return;
}
Stack S;
while(T!=NULL||!IsEmpty(S)){
	if(T){
		push(S,T);
		T=T->lchild;
	}
	else{
		pop(S,T);
		visit(T);
		T=T->rchild;
	}
}

}

您可能感兴趣的
posted @ 2018-07-23 10:12  Loading~  阅读(160)  评论(0编辑  收藏