版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告学院〔系〕名称:计算机与通信工程学院姓名***学号***专业计算机科学与技术〔中外合作〕班级2023级6班实验工程实验四:图的遍历课程名称数据结构课程代码实验时间2023年12月11日实验地点计算机根底实验室210批改意见成绩教师签字:实验目的:理解图的逻辑特点;掌握理解图的两种主要存储结构〔邻接矩阵和邻接表〕,掌握图的构造、深度优先遍历、广度优先遍历算法。具体实验题目:每位同学按下述要求实现相应算法:根据从键盘输入的数据创立图〔图的存储结构可采用邻接矩阵或邻接表〕,并对图进行深度优先搜索和广度优先搜索〔实验类型:验证型〕1〕问题描述:在主程序中提供以下菜单: 1…图的建立 2…深度优先遍历图 3…广度优先遍历图 0…结束2〕实验要求:图的存储可采用邻接表或邻接矩阵;定义以下过程:CreateGraph():按从键盘的数据建立图DFSGrahp():深度优先遍历图BFSGrahp():广度优先遍历图【实验过程记录〔源程序、测试用例、测试结果及心得体会等〕】实验源程序如下#include<stdio.h>#include<stdlib.h>#defineMAX10//最大定点数typedefstructQNode//定义队列{ intdata; structQNode*next;}QNode;typedefstruct{ QNode*front; QNode*rear;}Queue;typedefstructArcNode//连接表构建图{ intadjvex; structArcNode*nextarc;}ArcNode;typedefstructVNode//头结点{ chardata; ArcNode*firstarc;//邻接链表头指针}VNode;typedefstruct{ VNodeadjlist[MAX]; intv,a;//图的顶点数和边数}Graph;intInitQueue(Queue*s)//构造一个空的对列{ s->front=s->rear=(QNode*)malloc(sizeof(QNode)); if(!s->front) return(0); s->front->next=NULL; return1;}Enqueue(Queue*s,inte)//入队列{ QNode*p; p=(QNode*)malloc(sizeof(QNode)); if(!p)return(0); p->data=e; p->next=NULL; s->rear->next=p; s->rear=p; return1;}DEQueue(Queue*q,int*e)//出队列{ QNode*p; if(q->front==q->rear)return1;//表示这是空对列 { p=q->front->next; *e=p->data;//附值 q->front->next=p->next; } if(q->rear==p)q->rear=q->front; free(p); return1;}intemptyQueue(Queue*q)//判断队列是否为空{ if(q->front==q->rear) return1; else return0;}voidCrerateGraph(Graph*G)//创立图{ inti,m,n; ArcNode*p; printf("请输入图的顶点数和边数:"); scanf("%d%d",&G->v,&G->a); getchar(); printf("请输入%d个顶点的信息:",G->v); for(i=0;i<G->v;i++) { scanf("%s",&G->adjlist[i].data);/*读入顶点信息*/ G->adjlist[i].firstarc=NULL;/*边表置为空表*/ } for(i=0;i<G->a;i++) { printf("输入第%d条边(起点序号,终点序号):",i+1); scanf("%d%d",&m,&n);//输入无序对顶点编号0开始 p=(ArcNode*)malloc(sizeof(ArcNode)); p->adjvex=n; p->nextarc=G->adjlist[m].firstarc; G->adjlist[m].firstarc=p; p=(ArcNode*)malloc(sizeof(ArcNode)); p->adjvex=m; p->nextarc=G->adjlist[n].firstarc; G->adjlist[n].firstarc=p; }}intvisited[MAX];voidDFSGraph(GraphG,inti)//深度优先遍历{ ArcNode*p; printf("访问顶点:%c\n",G.adjlist[i].data);/*访问顶点i*/ visited[i]=1; p=G.adjlist[i].firstarc; while(p)/*从p的邻接点出发进行深度优先搜索*/ {if(!visited[p->adjvex]) DFSGraph(G,p->adjvex); p=p->nextarc;//找指向下一条弧的指针 }}voidDFSTraverse(GraphG){inti;for(i=0;i<G.v;i++)visited[i]=0;/*初始化标志数组*/for(i=0;i<G.v;i++)if(!visited[i])/*vi未访问过*/DFSGraph(G,i);//函数的递归的使用}intvisit[MAX];voidBFSGraph(GraphG)//广度优先遍历{ inti,k; Queueq; ArcNode*p; for(i=0;i<G.v;i++); visit[i]=0; InitQueue(&q); for(i=0;i<G.v;i++) if(!visit[i]) { printf("访问顶点:%c\n",G.adjlist[i].data); visit[i]=1; Enqueue(&q,i); while(!emptyQueue(&q)) { DEQueue(&q,&k); p=G.adjlist[k].firstarc; while(p) { if(!visited[p->adjvex]) { printf("访问顶点:%c\n",G.adjlist[p->adjvex].data); visited[p->adjvex]=1; Enqueue(&q,p->adjvex); } p=p->nextarc; } } }}voidmain()//主程序{ inta,i,j; Graph*G;G=(Graph*)malloc(sizeof(Graph)); while(a) { printf("请输入1~4,运行其功能\n"); printf("1……图的建立(本程序最多包含的点数为10)\n"); printf("2……深度优先遍历图\n"); printf("3……广度优先遍历图\n"); printf("4……结束\n"); scanf("%d",&a); getchar(); switch(a){ case1: CrerateGraph(G);break; case2: DFSTraverse(*G);break; case3:BFSGraph(*G);break; default:exit(4); } }}测试用例及测试结果如下:深度优先遍历输出结果:13542广度优先遍历输出结果:12345实验设计思路:〔1〕图的创立我采用的是连接表储存结构,将图的顶点、边的信息分别存在连接表的data
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州钱塘区高铁新城涉及110kV海塔1802线、海波1807线和宏波1828线电缆迁改工程环境影响报告表
- 2026年机关事业单位工人招聘《机动车驾驶员》技师考试题库及答案
- 港口码头危化品装卸安全指南(2026版)
- 2026年文化行业数字博物馆展览设计与互动技术知识考察试题及答案
- 黄斑水肿复发预警检查项目清单共识
- 光伏组件边框安装指南
- 门店店长工作实操指南(2025版)
- 2026年“激光原理与技术”期末考试B卷(附答案)
- 2026年锐器伤安全操作规程试题及答案
- 2026下半年湖南省事业单位退役军人服务中心笔试专项刷题题库及解析
- 2026年高校教师资格证考试题库附参考答案(满分必刷)
- 2026-2030年中国天文望远镜行业市场发展趋势与前景展望战略分析报告
- 2026-2027学年川教版(2024)小学信息技术四年级上册教学计划及进度表(第一学期)
- 高盛-半导体行业调研:董事长、高管及工厂调研要点(摘要)-20260914
- 第12课《短文二篇-记承天寺夜游》课件 (内嵌视频)2026-2027学年八年级语文统编版上册
- 2026 《守规矩 明礼仪 勤学习》新学期行为规范主题班会课 教学课件
- 混凝土工程中常见裂缝成因及预防措施培训
- Unit2单元测试题2026-2026学年人教版八年级上册英语
- 2026年秋苏科版(新版)初中信息技术七年级上册(全册)教学设计(附目录p100)
- 学堂在线 批判性思维-方法和实践 章节测试答案
- 作文-曼娜回忆录全文小说
评论
0/150
提交评论