版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据构造实验报告目的要求1.掌握图的储存思想及其储存实现。2.掌握图的深度、广度优先遍历算法思想及其程序实现。3.掌握图的常有应用算法的思想及其程序实现。实验内容1.键盘输入数据,成立一个有向图的毗邻表。2.输出该毗邻表。.在有向图的毗邻表的基础上计算各极点的度,并输出。.以有向图的毗邻表为基础实现输出它的拓扑排序序列。.采纳毗邻表储存实现无向图的深度优先递归遍历。6.采纳毗邻表储存实现无向图的广度优先遍历。7.在主函数中设计一个简单的菜单,分别调试上述算法。源程序:主程序的头文件:行列#include<>#include<>#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefintQElemType;typedefstructQNode{
ata='A'+i;G->vertices[i].firstarc=NULL;}for(i=0;i<G->vexnum;){printf("请输入极点的数组坐标(若退出,请输入-1):");scanf("%d",&i);if(i==-1)break;printf("请输入极点所指向下一个极点的数组坐标:");scanf("%d",&j);s=(ArcNode*)malloc(sizeof(ArcNode));s->adjvex=j;s->nextarc=G->vertices[i].firstarc;G->vertices[i].firstarc=s;}}5cata);for(p=[i].firstarc;p;p=p->nextarc)printf("%3d",p->adjvex);printf("\n");}}egree=0;G->vertices[i].indegree=0;}irstarc;p;p=p->nextarc){G->vertices[i].degree++;G->vertices[p->adjvex].degree++;G->vertices[p->adjvex].indegree++;}}voidprint_degree(ALGraphG){inti;printf("\nNomdatadegreeindegree\n");for(i=0;i<;i++)printf("\n%4d%5c%7d%8d",i,[i].data,[i].degree,[i].indegree);printf("\n");}ndegree)stack[top++]=i;count=0;while(top!=0){i=stack[--top];if(count==0)printf("%c",[i].data);elseprintf("-->%c",[i].data);count++;for(p=[i].firstarc;p;p=p->nextarc)if(![p->adjvex].indegree)stack[top++]=p->adjvex;}if(count<return(FALSE);elsereturn(TRUE);}irstarc)return0;elsereturn[v].firstarc->adjvex);}irstarc;while(p->adjvex!=u)p=p->nextarc;
出该有向图的度和入度
4.输出该有向图拓扑排序序列
\n");printf("5.
创立一个无向图的毗邻表
6.
深度优先递归遍历该无向图\n");printf("7.广度优先遍历该无向图0.printf("请输当选择:");scanf("%d",&select);switch(select){case1:printf("\n创立一个有向图的毗邻表:
\n");
退出
\n");creat_link(&G);break;case2:printf("\n输出该毗邻表:\n");visit(G);break;case3:printf("\n输出该有向图的度和入度:\n");cacu(&G);print_degree(G);break;case4:printf("\n输出该有向图拓扑排序序列:\n");if(!TopologiSort(G))printf("Toposortisnotsuccess!");break;case5:printf("\n创立一个无向图的毗邻表creat_link(&G);break;case6:printf("\n深度优先递归遍历该无向图DFSTraverse(G);break;
:\n");:\n");case7:printf("\n
广度优先遍历该无向图:
\n");BFSTraverse(G);break;case0:break;default:printf("
输当选项错误!从头输入!
\n");}}while(select);}运转结果截图:主菜单界面:创立一个有向图的领接表输出该毗邻表在有向图的毗邻表的基础上计算各极点的度,并输出。输出它的拓扑排序序列输出所建无向图的毗邻表深度优先递归遍历该无向图广度优先遍历该无向图说明:本实验用的有向图是课本182页图,无向图为课本168页图(a)实验总结此次的图的操作实验,与树的操作近似,但又比树复杂,包括更多的储存构造和遍历方法的操作,并且图的遍历需要沿着弧进行,以便输出弧上的信息。本实验中图的遍历采纳毗邻表的储存构造,在输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工信系统选调生试题及答案
- 2026年高校辅导员实务工作试题及答案
- 2026年买卖沙的合同(1篇)
- 2026年养殖合同鸡合同(1篇)
- 业务执行公开规范承诺函9篇
- 教育成果公开并守秘承诺书9篇范文
- 市场营销理论与实战分析
- 致供应商质量反馈联系函7篇
- 电网调度与自动化管理手册
- 企业员工培训计划制定与执行方案
- 2026年分析化学考研复试高频面试题包含详细解答
- 综合材料绘画综合材料绘画概述11第一节综合材料绘画的概念
- 《危险化学品安全法》与《危化品安全管理条例》条款对照表
- 吉林省四平市2026年中考物理押题卷(含答案解析)
- 中国平安IQ测评题库
- 赣州市属国企招聘笔试题库2026
- 2025至2030超声刀行业运营态势与投资前景调查研究报告
- 2025年上半年黑龙江中医药大学佳木斯学院公开招聘专职思政教师3人笔试参考试题附答案解析
- 2025重庆市属事业单位第四季度招聘工作人员335人笔试考试备考试题及答案解析
- 2025年少先队辅导员技能大赛考试基础知识测试题附参考答案(共三套)
- 线束基础知识培训计划课件
评论
0/150
提交评论