二叉树三种遍历算法代码_.doc

二叉树三种遍历算法代码_.doc

ID:59230376

大小:17.50 KB

页数:3页

时间:2020-09-09

二叉树三种遍历算法代码_.doc_第1页
二叉树三种遍历算法代码_.doc_第2页
二叉树三种遍历算法代码_.doc_第3页
资源描述:

《二叉树三种遍历算法代码_.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;}//endwhileif(!StackEmpty(s))//通过下一次循环中的内嵌while实现右子树遍历{p=pop(s);p=p->rchild;}//endif}//endwhile}//PreOrderUnrec2.中序遍历非递归算法#definemaxsize100typedefstruct{BitreeElem[maxsize];inttop;}SqStack;voidInOrderUnrec(Bitreet){SqStacks;Stack

5、Init(s);p=t;while(p!=null

6、

7、!StackEmpty(s)){while(p!=null)//遍历左子树{push(s,p);p=p->lchild;}//endwhileif(!StackEmpty(s)){p=pop(s);visite(p->data);//访问根结点p=p->rchild;//通过下一次循环实现右子树遍历}//endif}//endwhile}//InOrderUnrec3.后序遍历非递归算法#definemaxsize100typedefenum{L,R}tagtype;

8、typedefstruct{Bitreeptr;tagtypetag;}stacknode;typedefstruct{stacknodeElem[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(!StackEmpty(s)&&s.Ele

9、m[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(!StackEmpty(s));}//PostOrderUnrec

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

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

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