资源描述:
《最新中序遍历非递归算法演示PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中序遍历非递归算法演示intNInorderTraverse(BiTree&T,int(*visit)(chare)){InitStack(S);Push(S,T);//根指针入栈while(!StackEmpty(S))//在树不空的情况下{while(GetTop(S,p)&&p)Push(S,p->lchild);//向左走到头Pop(S,p);//空指针退栈if(!StackEmpty(S)){Pop(S,p);//元素出栈if(!visit(p->data))returnERROR;Push(S,p->rchild);//右子树入栈}}retu
2、rnOK;}//NInOrderTraverse中序遍历二叉树非递归算法栈的变化ASABDCFEGintNInorderTraverse(BiTree&T,int(*visit)(chare)){InitStack(S);Push(S,T);//根指针入栈while(!StackEmpty(S))//在树不空的情况下{while(GetTop(S,p)&&p)Push(S,p->lchild);//向左走到头Pop(S,p);//空指针退栈if(!StackEmpty(S)){Pop(S,p);//元素出栈if(!visit(p->data))retur
3、nERROR;Push(S,p->rchild);//右子树入栈}}returnOK;}//NInOrderTraverse中序遍历二叉树非递归算法栈的变化ASABDCFEGintNInorderTraverse(BiTree&T,int(*visit)(chare)){InitStack(S);Push(S,T);//根指针入栈while(!StackEmpty(S))//在树不空的情况下{while(GetTop(S,p)&&p)Push(S,p->lchild);//向左走到头Pop(S,p);//空指针退栈if(!StackEmpty(S)){P
4、op(S,p);//元素出栈if(!visit(p->data))returnERROR;Push(S,p->rchild);//右子树入栈}}returnOK;}//NInOrderTraverse中序遍历二叉树非递归算法栈的变化ACBSABDCFEGintNInorderTraverse(BiTree&T,int(*visit)(chare)){InitStack(S);Push(S,T);//根指针入栈while(!StackEmpty(S))//在树不空的情况下{while(GetTop(S,p)&&p)Push(S,p->lchild);//向
5、左走到头Pop(S,p);//空指针退栈if(!StackEmpty(S)){Pop(S,p);//元素出栈if(!visit(p->data))returnERROR;Push(S,p->rchild);//右子树入栈}}returnOK;}//NInOrderTraverse中序遍历二叉树非递归算法栈的变化ACBSABDCFEGintNInorderTraverse(BiTree&T,int(*visit)(chare)){InitStack(S);Push(S,T);//根指针入栈while(!StackEmpty(S))//在树不空的情况下{wh
6、ile(GetTop(S,p)&&p)Push(S,p->lchild);//向左走到头Pop(S,p);//空指针退栈if(!StackEmpty(S)){Pop(S,p);//元素出栈if(!visit(p->data))returnERROR;Push(S,p->rchild);//右子树入栈}}returnOK;}//NInOrderTraverse中序遍历二叉树非递归算法栈的变化ABSABDCFEGintNInorderTraverse(BiTree&T,int(*visit)(chare)){InitStack(S);Push(S,T);//
7、根指针入栈while(!StackEmpty(S))//在树不空的情况下{while(GetTop(S,p)&&p)Push(S,p->lchild);//向左走到头Pop(S,p);//空指针退栈if(!StackEmpty(S)){Pop(S,p);//元素出栈if(!visit(p->data))returnERROR;Push(S,p->rchild);//右子树入栈}}returnOK;}//NInOrderTraverse中序遍历二叉树非递归算法栈的变化ABSABDCFEGCintNInorderTraverse(BiTree&T,int(*
8、visit)(chare)){InitStack(S);Push(S,T);//