二叉树先序、中序、后序遍历非递归算法

二叉树先序、中序、后序遍历非递归算法

ID:46634138

大小:26.50 KB

页数:3页

时间:2019-11-26

二叉树先序、中序、后序遍历非递归算法_第1页
二叉树先序、中序、后序遍历非递归算法_第2页
二叉树先序、中序、后序遍历非递归算法_第3页
资源描述:

《二叉树先序、中序、后序遍历非递归算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.先序遍历非递归算法voidPreOrderUnrec(Bitree*t){   Stacks;StackInit(s);Bitree*p=t;while(p!=NULL

2、

3、!StackEmpty(s)){     while(p!=NULL)      //遍历左子树     {      visite(p->data);      push(s,p);      p=p->lchild;        }                if(!StackEmpty(s))    //通过下一次循环中的内嵌while实现右子树遍历     { 

4、     p=pop(s);      p=p->rchild;          }//endif        }//endwhile}2.中序遍历非递归算法voidInOrderUnrec(Bitree*t){   Stacks;StackInit(s);Bitree*p=t;   while(p!=NULL

5、

6、!StackEmpty(s)){     while(p!=NULL)      //遍历左子树     {      push(s,p);      p=p->lchild;     }                if(!St

7、ackEmpty(s))     {      p=pop(s);      visite(p->data);     //访问根结点      p=p->rchild;      //通过下一次循环实现右子树遍历     }//endif}//endwhile}3.后序遍历非递归算法typedefenum{L,R}tagtype;typedefstruct{Bitreeptr;tagtypetag;}stacknode;typedefstruct{stacknodeElem[maxsize];inttop;}SqStack;voidPostOr

8、derUnrec(Bitreet){SqStacks;stacknodex;StackInit(s);p=t;do{     while(p!=null)     //遍历左子树     {      x.ptr=p;      x.tag=L;    //标记为左子树      push(s,x);      p=p->lchild;     }     while(!StackEmpty(s)&&s.Elem[s.top].tag==R)       {      x=pop(s);      p=x.ptr;      visite(p->

9、data);//tag为R,表示右子树访问完毕,故访问根结点       }          if(!StackEmpty(s))     {      s.Elem[s.top].tag=R;   //遍历右子树      p=s.Elem[s.top].ptr->rchild;          }}while(!StackEmpty(s));}//PostOrderUnrec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。