树的基本操作实验报告.doc

树的基本操作实验报告.doc

ID:49718825

大小:390.50 KB

页数:14页

时间:2020-03-02

树的基本操作实验报告.doc_第1页
树的基本操作实验报告.doc_第2页
树的基本操作实验报告.doc_第3页
树的基本操作实验报告.doc_第4页
树的基本操作实验报告.doc_第5页
资源描述:

《树的基本操作实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.实验报告--------数据结构课程设计存储结构与基本运算的算法要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。学院:专业:班级:学号:姓名:范文..目录1.课程设计的目的32.问题描述33.需求分析34.模块设计35.系统主要子程序的详细设计36.调试分析7总结68、参考文献:69、程序清单:610、程序运行结果10范文..1.课程设计的目的(1)熟练使用C语言编写程序,解决实际问题;(2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(3)初步掌握

2、软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;2.问题描述(1)存储结构与基本运算的算法要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。3.需求分析1.建立树2.树与二叉树的转换3.树的先序遍历(递归和非递归算法)4.树的后序遍历(递归和非递归算法)5.层次序的非递归算法的实现4.模块设计(1)voidCreateTree(Tree*tr)//建立树(2)voidPreOrder(Treer

3、oot)//先序遍历树递归算法(3)voidPreOrderTraverse(TreeT)//先序遍历树非递归算法(4)voidInOrder(Treeroot)//后序遍历树递归算法(5)voidInOrderTraverse(TreeT)//后序遍历树非递归算法(6)voidLevelOrder(TreeT)//层次遍历树(7)voidmainwork()//主函数。创建树,调用工作区模块函数5.系统主要子程序的详细设计(1)voidCreateTree(Tree*tr){//按照先序范文..charch;scanf("%c",&ch)

4、;if(ch=='#')*tr=NULL;else{*tr=(Tree)malloc(sizeof(TNode));//生成一个新结点(*tr)->data=ch;CreateTree(&((*tr)->firstchild));//生成左子树CreateTree(&((*tr)->nextsibling));//生成右子树}}voidTree_to_BiTree(Tree*tr,BiTree*bt){if(*tr==NULL)*bt=NULL;else{*bt=(BiTree)malloc(sizeof(BiTNode));(*bt)->

5、data=(*tr)->data;Tree_to_BiTree(&((*tr)->firstchild),&((*bt)->LChild));Tree_to_BiTree(&((*tr)->nextsibling),&((*bt)->RChild));}}//(2)树型打印二叉树voidTranslevelPrint(BiTreebt){//本算法实现二叉树的按层打印structnode{BiTreevec[MAXLEN];//存放树结点intlayer[MAXLEN];//结点所在的层intlocate[MAXLEN];//打印结点的位置

6、intfront,rear;}q;//定义队列qinti,j,k;intnLocate;j=1;k=0;q.front=0;//初始化队列q队头,队尾q.rear=0;printf("");q.vec[q.rear]=bt;//将二叉树根节点入队列q.layer[q.rear]=1;q.locate[q.rear]=20;q.rear=q.rear+1;while(q.front

7、层打印时换行{printf("");printf("");j=j+1;k=0;while(kdata);q.front=q.front+1;if(bt->LChild!=NULL)//存在左子树,将左子树根节点入队列{q.vec[q.rear]=bt->LChild;q.layer[q.rear]=i+1;q.locate[q.rear]=

8、(int)(nLocate-pow(2,NLAYER-i-1));q.rear=q.rear+1;}if(bt->RChild!=NULL)//存在右子树,将右子树根节点入队列{

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

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

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