树与二叉树转换的实现.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《树与二叉树转换的实现.docx》由会员分享,可在线阅读,更多相关《树与二叉树转换的实现.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、河南工程学院数据结构与算法课程设计成果报告树与二叉树转换的实现2014年12月29日int vextex;int x,y;edgenode *link;vexnode;const int px=1,2,2,1,-1,2,-2,-1;const int py=2,1,-1,-2,-2,-1,1,2;const int L=8,H=8;vexnode gaL*H;int visitedL*H=0;int stackL*H;int top;seqstack;seqstack s;void setnull(seqstack *s)s-top=-l;int empty(seqstack *s)if(s-
2、toptopL*H-l)printf(stack overflow!n);7return 0;)elses-stack+s-top = x;return 1;)int pop(seqstack *s)(if(s-toptop-;return(s-stacks-top+l);)void init()int n;for (int i=0;iH;i+)for (int j=O;jL;j+)n=L*i+j;gan.vextex=n;gan.x=j;gan.y=i;gan.link=NULL;)for (i=0;iL*H;i+)edgenode *p;for (int k=0;kMAX;k+)int t
3、x=gai.x+pxk;int ty=gai.y+pyk;if(tx0| |ty=L| |ty=H) continue;else(p=(edgenode*)malloc(sizeof(edgenode);p-vextex=ty*L+tx;p-next=gai.link;gai.link=p;)void show()int i;printf(n);for (i=0;izgai.vextex);edgenode *p;p=(edgenode*)malloc(sizeof(edgenode);p=gai.link;while (p!=NULL)printf(%d ,p-vextex);p=p-nex
4、t;)printf(n);)void showanswerf)int rankL*H;int tag=s.top;for (int i=L*H-l;i=O;i-)ranks.stacktag-=i;)for (i=O;ivextex)HFS(p-vextex);)p=p-next;)if (s.top=L*H-l)printffanswer %d:n/sum+);showanswerf);printf(n);)visited s.stacks.top=0;pop(&s);if (empty(&s)return 0;)return 0;int main()11int n;for (n=0;nH*
5、L;n+)memsetfvisitedAsizeoffvisited);init();show();setnull(&s);HFS(n);getch();)return 0;)4测试4.1测试数据程序开始:5qC:JIS0FTCTuYanbinwvtep. ex请输入执行的指令:.主菜单*输入1以双亲法创立一棵一般树*输入2树的前序遍历(递归)*输入3树的后序遍历(递归)*输入4树的前序遍历(非递归)*聿输入5树的后序遍历(非递归)*输入6层次序的非递归遍历*输入0退出 gjy:*图4. 1-1开始界面12建立一棵一般树:输入指令1C:JISOFTCTuyanbwvrteBp. exe募单*输
6、入1以双亲法创立一棵一般树*科输入2一树的前序遍历(递归)*c*输入3树的后序遍历(递归)*输入4树的前序遍历(非递归)*,*输入5树的后序遍历(非递归)*F*输入6层次序的非递归遍历*输入0退出程序 *着输入执行的指令:1建立一般树,依次输入各个结点情况:俞入结点方式:双亲数据,整型数据(第一个结点双亲数据为-1,最后以-1, -1结束)列子:T,1 1,3俞入第1结点: 输入结点的方式: 双亲数据(整型),结点数据(整型)以T, T结束如:-1, 11, 2 -1, -1C:JiSOFTCToTnbinmFep. ee,“蛹入攵树的前存遍历健丽* *输入3-树的后序遍历(递归”*瑜入4树的
7、前序遍历(非递归)*输入5树的后序遍历(非递归)*输入6其次序的非递归遍历”等*编入0退出程序*mxma请输入执行的指令:1建立一般树,依次输入各个给点情况:希入结点方式:双亲数据,整型数据(第一个结点双亲数据为一】,是后以T, -1结束)例子:-1,1 1,3输入第1转点:-bl物人第2结点:1,2粕入第3结点:1,3输入第4结点:2,4徜入第5结点:图4. 1-2 一殷树初始建立13迥, .一般树创立完的具体情况:a C:JlSOFTCTuTnnbinwtop.仄缁点方式:双亲数据,整型数据舜二T菇点寿数据存1,最后以寸1结葡仔:-1,1 1,3i入第1结点:输入第2结点:1,2输入第3布
8、点: 1,3输入第S防点:2,4输入第5诘点:创立的树具体情况如下:序号结点双亲01-11212313424-1-1JlSOFTCTuTanbxnwtGap.创立的树具体情况如下:序号结点双亲01-11212313424-1-1一用树转换成二叉树后的情况:DACvuYan I 修i ,、vUh】Tes e:-般树转换成二叉树后的情况:D:CYuYanib wwtFnipxnce-B?*=*,243-副菜单一P返回企差单继续揉倍*0退,出程序 MW*-1口1*1图4. 1-4 一般树转化为二叉树需三 T声 单王程 si 副返退执序 入后3翦215一1树健历历历国 LA BL IL 二二创遢遍遍靠
9、法 iiyhifAs 序 双的的的的次出 ,以层退副菜单项选择择:选择。结束程序黄留!十 frfMriMtwirfMrfwrwiewwwwwi*-9速直至菜单继续操作*-*退 出程方二Procs any koy to continue图4. 1-5返回主菜单界面4. 2测试分析详细设计过程共有以下函数的实现:树的初始化函数(双亲法和孩子节点法两种),建树函数,输出树函数,树 的前序遍历函数(递归和非递归两种),树的后序遍历函数(递归和非递归两种), 树的层次遍历函数,一般树和二叉树的转换函数。主菜单和副菜单,主函数。5总结16题目树与二叉树转换的实现考核工程考核内容得分平时考核(30分)出勤情
10、况、态度、效率;知识掌握情况、 基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答下列问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告源代码(5分)按照规范要求完成课程设计源代码的排版总评成绩指导教师评语:日期:以前用C编程,只是注重如何编写函数能够完成所需要的功能,似乎没有 明确的战术,只是凭意识和简单的语句来堆砌出一段段程序。现在变成感觉完全 不同了。在编写一个程序之前,自己能够综合考虑各种因素,首先选取自己需要 的数据结构,是树还是图或是别的什么。然后再
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二叉 转换 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内