数据结构——二叉树的遍历

数据结构——二叉树的遍历

ID:47685734

大小:471.76 KB

页数:26页

时间:2019-10-22

数据结构——二叉树的遍历_第1页
数据结构——二叉树的遍历_第2页
数据结构——二叉树的遍历_第3页
数据结构——二叉树的遍历_第4页
数据结构——二叉树的遍历_第5页
资源描述:

《数据结构——二叉树的遍历》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、信息科学与技术学院《数据结构》课程设计报告题目名称:二叉树的遍历专业班级:11111111111学生学号:11111指导教师:11111完成日期:2013-01-091课程设计的目的31.1课程设计的冃的32概要设计32.1总体组成框图32.2基本操作43详细设计43.1流程图43.2源程序64测试214.1创建二叉树214.2二叉树的递归遍历(以先序为例)214.3二叉树的非递归遍历(以先序为例)224.4层次序遍历:224.5二叉树与树的转换:235课程设计总结246参考书目:251课程设计的目的1.1课程设计的H的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的

2、动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生叮以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。1.2课程设计的题冃二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。1.3题目要求遍历的内容应是T姿百态的。树与二叉树的转换的实现。以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。2概要设计2.1总体组成框图2.2基木操作〃队列数据类型定义typedefstruct{BiTreeNod

3、equeue[maxsize];intrear;//队尾指针intfront;//队头指针intcount;//计数器}SeqCQueue;//栈数据类型定义typedefstruct//堆栈的结构体,用于非递归的后序遍历{stacknodeElem[maxsize];inttop;}SequenceStack;主要模块设计voidPreOrder(BiTreeNode*root,voidVisit(charitem));//先序递归遍历二叉树voidTnOrder(BiTreeNode*root,voidVisit(charitem))://中序递归遍历二叉树voidPostOrd

4、er(BiTreeNode*root,voidVisit(charitem));//后序递归遍历二叉树voidPreOrderUnrec(BiTreeNode*t);//先序非递归遍历一叉树voidInOrderUnrec(BiTreeNode*t);//屮序非递归遍历二叉树voidPostOrderUnrec(BiTreeNode*t);//后序非递归遍历二叉树voidccbl(BiTreeNode*h)://层次遍历英他模块包括栈的初始化及英基本操作和队列的初始化及基本操作。3详细设计3.1流程图二叉树的递归遍历(以先序遍历为例)结束二叉树的非递归遍历(以先序遍历为例)二叉树的层

5、次遍历访问元素所指结点,若该元素所指结点的左右孩子结点非空,则该元素所指结点的左孩子指针和右孩子指针顺序入队。3.2源程序#include#includeusingnamespacestd;#definemaxsize100structnode{inti;node*next;};structtreenode{inti;treenode};nodenod[105],temp[1005];intedge,tt,qq[1000],head,tail;treenodetn[105];voidchangel(intk){if(nod[k].next==NUL

6、L)return;inti,j;node*p;for(p=nod[k],nextJ=0;p!=NULL;p=p->next){i=p->i;if(j==O){tn[k].l=&tn[i];changel(i);j=l;}else{tn[i].r=tn[k].l->r;tn[k].l->i-&tn[i];changel(i);voidbfsl(intsum)if(sum==O)return;inti,j,k=O;for(i=1;iv二sum;i++){j=qqfhead++l;if(tn[j].l!=NULL){cout«j«tn

7、j].l->i«endl;qq[tail++]=tn

8、

9、jj.l->i;k++;}if(tn[j].r!=NULL){cout«j«tnlj].l->i«endl;qq[tail++]=tn[j].r->i;k++;}}bfsl(k);}voidfun1()〃树转换二叉树{memset(nod,0,sizeof(nod));cout«H输入树,结点1默认位根结点M«endl;cout«n输入边数:M«endl;cin»edge;inti,j,k=O,x,y;coutvv“以父亲指向儿了方式输入边信Mn«en

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

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

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