欢迎来到天天文库
浏览记录
ID:56951056
大小:42.01 KB
页数:26页
时间:2020-07-28
《二叉树先序、中序、后序三种遍历的非递归算法,此三个算法可视为标准算法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本贴给出二叉树先序、中序、后序三种遍历的非递归算法,此三个算法可视为标准算法。1.先序遍历非递归算法#definemaxsize100typedefstruct{ BitreeElem[maxsize]; inttop;}SqStack;voidPreOrderUnrec(Bitreet){ SqStacks; StackInit(s); p=t; while(p!=null
2、
3、!StackEmpty(s)) { while(p!=null) //遍历左子树 { visi
4、te(p->data); push(s,p); p=p->lchild; }//endwhile if(!StackEmpty(s)) //通过下一次循环中的内嵌while实现右子树遍历 { p=pop(s); p=p->rchild; }//endif }//endwhile }//PreOrderUnrec2.中序遍历非递归算法#definemaxsize100typede
5、fstruct{ BitreeElem[maxsize]; inttop;}SqStack;voidInOrderUnrec(Bitreet){ SqStacks; StackInit(s); p=t; while(p!=null
6、
7、!StackEmpty(s)) { while(p!=null) //遍历左子树 { push(s,p); p=p->lchild; }//endwhile if(!StackEmpty(s))
8、 { p=pop(s); visite(p->data); //访问根结点 p=p->rchild; //通过下一次循环实现右子树遍历 }//endif }//endwhile}//InOrderUnrec3.后序遍历非递归算法#definemaxsize100typedefenum{L,R}tagtype;typedefstruct{ Bitreeptr; tagtypetag;}stacknode;typedefstruct{ stack
9、nodeElem[maxsize]; inttop;}SqStack;voidPostOrderUnrec(Bitreet){ SqStacks; stacknodex; StackInit(s); p=t; do { while(p!=null) //遍历左子树 { x.ptr=p; x.tag=L; //标记为左子树 push(s,x); p=p->lchild; } while(!StackEm
10、pty(s)&&s.Elem[s.top].tag==R) { x=pop(s); p=x.ptr; visite(p->data); //tag为R,表示右子树访问完毕,故访问根结点 } if(!StackEmpty(s)) { s.Elem[s.top].tag=R; //遍历右子树 p=s.Elem[s.top].ptr->rchild; } }while(!St
11、ackEmpty(s));}//PostOrderUnrec---------------------------------------------------------------范文最新推荐------------------------------------------------------电力安全月工作总结[电力安全月工作总结]电力安全月工作总结2011年3月1日至3月31日为我公司的安全生产月,**变电站围绕;夯实基储提高素质、树立标杆、争创一流;的主题,开展了丰富多彩、形式多样的具体行动:通过看板形式宣传安全第一、预
12、防为主的方针;通过48+4的学习机会,进行安全生产大讨论;通过安全活动进行查找本站的隐患的活动,电力安全月工作总结。形成了;人人学会安全,层层尽责保证安全;的良好氛围,使我站的安全生产工作又上了一个新的台阶
此文档下载收益归作者所有