ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:67.73KB ,
资源ID:20898239      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20898239.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言综合实验设计报告数据结构二叉树的遍历Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言综合实验设计报告数据结构二叉树的遍历Word格式文档下载.docx

1、再用图形显示创建好的树,进行先序,中序,后序遍历。遍历时显示每个结点的过程。最后关闭图形。三 主要问题的解决方法及技术关键_ 存在的主要问题是在手动创建树时怎样输入结点,当选择“人工手动建立”时,在提示后依次输入26个字符或数字,每行一个。此时树就能建立,然后用图形显示出来。本程序的技术关键是建立二叉树和图形显示遍历的过程,分别用到Tree *CreatTree(),Void DrawTree(Tree *t)等函数。遍历结束后,图形关闭。四 流程图五 程序清单/*tree2.c二叉树演示*/#include stdio.hstdlib.hdos.htime.htypedef struct T

2、REE char data;/*树的结点数据*/ struct TREE *lchild; struct TREE *rchild; int x;/*树的x坐标*/ int y;/*树的y坐标*/Tree;struct OUTPUT/*三种遍历的x坐标*/*三种遍历的y坐标*/ int num;s;int nodeNUM=0;/*统计当前的结点数字,最多26个*/char way;/*自动建立树和手动建立树的标志,2手动,1自动*/char str3;/*显示结点数据的字符串*/void Init();/*图形初始化*/void Close();/*图形关闭*/Tree *CreatTree(

3、);/*文本模式下创建树的过程*/Tree *InitTree(int h,int t,int w);/*创建树,h层次,t横坐标,w树之间的宽度,n树的建立方式*/void DrawTree(Tree *t);/*用图形显示创建好的树*/void Preorder(Tree *t);/*前序遍历*/void Midorder(Tree *t);/*中序遍历*/void Posorder(Tree *t);/*后序遍历*/void DrawNode(Tree *t,int color);/*遍历时显示每个结点的过程*/void ClrScr();/*清空树的区域*/void main() Tr

4、ee *root; randomize(); root=CreatTree();/*创建树*/ Init(); DrawTree(root);/*每次遍历前显示白色的树*/ sleep(1); s.x=100;s.y=300;s.num=1;/*每次遍历前设置显示遍历顺序显示的x,y坐标*/ Preorder(root); getch(); ClrScr(); s.y=350; s.num=1; Midorder(root); s.y=400; Posorder(root); Close();void ClrScr() setcolor(BLACK); setfillstyle(SOLID_F

5、ILL,BLACK); bar(0,20,640,280);Tree *CreatTree() clrscr(); printf(please input nn);puter creatn2.people creatn way=getch();/*输入创建树的方法,1电脑自动建立,2人工手动建立*/ if(way!=2) way=1;/*其他数字默认自动建立*/ if(way=)/*手动建立提示输入结点*/Please creat the treen root=InitTree(1,320,150); system(pause return root;/*生成二叉树,h表示层次,t表示横坐标,

6、w表示结点左右子树的宽度,随机数n确定结点是空或非空,如n为0,则为空*,但要限定确保结点数不少于三个*/Tree *InitTree(int h,int t,int w) char ch; int n;/*自动建立时随机赋值判断是否是NULL的标志*/ Tree *node;)/*手动建立需要自己输入*/ scanf(%c,&ch); else/*自动建立的赋值*/ n=random(5); if(n=0&nodeNUM=3)/*随机赋值时候确保自动建立的二叉树有三个结点*/ ch=. else ch=65+random(25); if(ch=)/*输入空格代表NULL*/ return N

7、ULL; if(h=6|nodeNUM=26)/*如果树的层次已经到5或者结点树到达26个就自动返回NULL*/ node=(Tree*)malloc(sizeof(Tree); node-data=ch;x=t;/*树的x坐标是传递过来的横坐标*/y=h*50;/*树的y坐标与层次大小有关*/ nodeNUM+;lchild=InitTree(h+1,t-w,w/2);rchild=InitTree(h+1,t+w,w/2); return node;void DrawTree(Tree *t) if(t!=NULL) fillellipse(t-x,t-y,9,9); setcolor(W

8、HITE); circle(t-y,10); /*画圆*/ sprintf(str,t-data);/*将内容转换成字符串输出*/ outtextxy(t-x-3,t-y-2,str); if(t-lchild!=NULL)/*左子树*/ line(t-x-5,t-y+12,t-lchild-x+5,t-y-12); DrawTree(t-lchild);rchild!=NULL)/*右子树*/rchild-rchild);void DrawNode(Tree *t,int color) setcolor(YELLOW); setfillstyle(SOLID_FILL,YELLOW);y,1

9、0,10); setcolor(RED); setcolor(color); outtextxy(s.x,s.y,str);%d,s.num);/*将遍历次序用数字显示在树的结点上*/y-20,str); s.num+;void Preorder(Tree *t) s.x+=15; DrawNode(t,GREEN); Preorder(t-void Midorder(Tree *t) Midorder(t- DrawNode(t,YELLOW);void Posorder(Tree *t) Posorder(t- DrawNode(t,BLUE);void Init() int gd=DET

10、ECT,gm; initgraph(&gd,&gm,c:tc cleardevice(); outtextxy(250,10,anykey to continue outtextxy(20,300,preorder outtextxy(20,350,midorder outtextxy(20,400,posordervoid Close() closegraph();六 设计结果说明本程序主函数简洁易懂,用了坐标设定树结点的位置,使运算方便。设置了选择功能,其中自动创建起着示范作用,还显示出程序的自动化程度。调用了众多功能函数,且函数表达较详细。用图形显示了遍历的经过使人更好地明白二叉树的遍历。不足的是在手动建立树时,没有清楚说明运用的变量的性质,让使用者在输入数据时产生疑惑,且有些具体函数的作用没有很好的体现。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1