在实现二叉树的中序遍历的过程中遇到的问题
非递归的实现需要用到栈作为辅助存储结构,在实现的过程中,遇到了不少的问题,但还是将问题解决,总结一下,就是基础还是不够扎实,现在把遇到的问题梳理一下,好好总结一下。
一.算法描述:
status InOrderTraverse_non_recursion(BiTree tree, status (* Visit)(TElemType e))
{/* 合法性检测 */
InitStack(S);
Push(tree, S);
while(!StackEmpty(S)){
while(GetTop(S, p) && p)
Push(S, p->lchild);
Pop(S, p);
if(!StackEmpty(S)){
Pop(S, p);
Visit(p->data);
Push(S, p->rchild);
}
}
}
在实现的过程中发现了算法的几个特点: