中序遍历非递归算法演示.ppt

上传人:b****2 文档编号:2644394 上传时间:2022-11-04 格式:PPT 页数:59 大小:419.50KB
下载 相关 举报
中序遍历非递归算法演示.ppt_第1页
第1页 / 共59页
中序遍历非递归算法演示.ppt_第2页
第2页 / 共59页
中序遍历非递归算法演示.ppt_第3页
第3页 / 共59页
中序遍历非递归算法演示.ppt_第4页
第4页 / 共59页
中序遍历非递归算法演示.ppt_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

中序遍历非递归算法演示.ppt

《中序遍历非递归算法演示.ppt》由会员分享,可在线阅读,更多相关《中序遍历非递归算法演示.ppt(59页珍藏版)》请在冰豆网上搜索。

中序遍历非递归算法演示.ppt

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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化SABDCFEGintNInorderTraverse(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);/右子树入栈右子树入栈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)Pop(S,p);/元素出栈元素出栈if(!

visit(p-data)returnERROR;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)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);/根指针入栈根指针入栈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中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ACBSABDCFEGintNInorderTraverse(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);/右子树入栈右子树入栈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);/向左走到头向左走到头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)/在树不空的情况下在树不空的情况下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中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ACBSABDCFEGintNInorderTraverse(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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ABSABDCFEGintNInorderTraverse(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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ABSABDCFEGCintNInorderTraverse(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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ABSABDCFEGCintNInorderTraverse(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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ABSABDCFEGCintNInorderTraverse(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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递归算法栈的变化ABSABDCFEGCintNInorderTraverse(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);/右子树入栈右子树入栈returnOK;/NInOrderTraverse中序遍历二叉树非递归算法栈的变化中序遍历二叉树非递

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1