版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五 图操作实现实验日期: 2017 年 4 月 27 日 实验目的及要求1. 熟练掌握图的邻接矩阵和邻接表的存储方式;2. 实现图的一些基本运算,特别是深度优先遍历和广度优先遍历;实验内容用邻接矩阵法建一个无向连通图(顶点信息为顺序字母A,B,C,D.,而非键盘输入),分别用dfs(深度优先搜索)和bfs(广度优先搜索)遍历,输出图中顶点信息并验证。邻接矩阵图类型定义:#define MAX 40 typedef char vexType; /*顶点类型*/ typedef struct vexType vexMAX; int arcsMAXMAX; int vn,en; MGraph;
2、访问标记数组定义:int visitedMAX; /*值为0时对应顶点未被访问,值为1时对应顶点已被访问 */顺序存储的循环队列类型定义:typedef int datatype; /*队列元素为图的顶点下标,int型*/typedef struct node datatype dataMAX; int front, rear; SeqQueue; /*顺序存储的循环队列类型*/任务1自定义函数库文件Queue.h,完成队列的相关操作。2创建一个程序文件sy15.cpp,自定义相应函数完成以下操作:(1)void createGraph(MGraph *g) /*建邻接矩阵存储的无向图*/(2
3、)void visit(MGraph *g,int v) /*访问v号顶点*/(3)void dfs(MGraph *g,int v) /*邻接矩阵存储的图的深度优先搜索*/(4)void bfs(MGraph *g,int v) /*邻接矩阵存储的图的广度优先搜索*/3回答下列问题(1)现有定义:MGraph *g,并且g指针指向的无向图已创建完成,请写出该图遍历前需初始化visited数组的C程序语句。for (i = 0; i g.vn; i+) /*标记数组初始化*/visitedi = 0;(2)定义函数int count (MGraph *g)统计非连通图的连同分量个数。(说明:借
4、助遍历算法实现)int count (MGraph *g) int i, m=0; for(i=0; ivn; i+) if(visitedi=0) m+; dfs(g, i); return m;4自定义函数库文件Queue.h 与sy15.cpp源程序清单(含必要的注释)Queue.h:#includetypedef int datatype; /*队列元素为图的顶点下标,int型*/typedef struct node datatype dataMAX;int front, rear; SeqQueue; /*顺序存储的循环队列类型*/void InitQueue(SeqQueue *
5、Q); /*初始化队列*/void EnQueue(SeqQueue *Q, int v); /*入队*/datatype DeQueue(SeqQueue *Q); /*出队*/int EmptyQueue(SeqQueue *Q); /*判队空*/int FullQueue(SeqQueue *Q); /*判队满*/void InitQueue(SeqQueue *Q) Q-front = Q-rear = 0;void EnQueue(SeqQueue *Q, int v) if (FullQueue(Q) printf(队列已满!); /*判队满*/return;Q-rear = (Q
6、-rear + 1) % MAX; /*入队*/Q-dataQ-rear = v;datatype DeQueue(SeqQueue *Q) if (EmptyQueue(Q) printf(队列为空!); /*判队空*/return -1;Q-front = (Q-front + 1) % MAX; /*出队*/return Q-dataQ-front;int EmptyQueue(SeqQueue *Q) return Q-front = Q-rear;int FullQueue(SeqQueue *Q) return (Q-rear + 1) % MAX = Q-front;sy5.cp
7、p:#define MAX 40#includeQueue.hint visitedMAX; /*值为0时对应顶点未被访问,值为1时对应顶点已被访问 */typedef char vexType; /*顶点类型*/typedef struct vexType vexMAX;int arcsMAXMAX;int vn, en; MGraph;void createGraph(MGraph *g); /*建邻接矩阵存储的无向图*/void visit(MGraph *g, int v); /*访问v号顶点*/void dfs(MGraph *g, int v); /*邻接矩阵存储的图的深度优先搜索
8、*/void bfs(MGraph *g, int v); /*邻接矩阵存储的图的广度优先搜索*/void createGraph(MGraph *g) int i, j, v;char a = A;printf(输入顶点数:); /*输入顶点数和边数*/scanf(%d, &g-vn);printf(输入边数:);scanf(%d, &g-en);for (i = 0; i vn; i+) /*二维数组初始化*/for (j = 0; j vn; j+) g-arcsij = 0;for (v = 0; v vn; v+) /*确定数据*/g-vexv = a;a+;printf(输入结构:
9、n); /*确定边*/for (v = 0; v en; v+) scanf(%d %d, &i, &j);g-arcsij = 1;g-arcsji = 1;void visit(MGraph *g, int v) printf(%c, g-vexv);void dfs(MGraph *g, int v) int j;visit(g, v); /*输出数据*/visitedv = 1; /*标记已访问*/for (j = 0; j vn; j+) if (g-arcsvj = 1 & visitedj = 0) dfs(g, j); /*递归*/void bfs(MGraph *g, int
10、 v) int i, w;SeqQueue Q;InitQueue(&Q); /*队列初始化*/EnQueue(&Q,v); /*入队*/visitedv = 1; /*标记已访问*/while (!EmptyQueue(&Q) w = DeQueue(&Q); /*出队*/visit(g, w); /*输出数据*/for (i = 0; i vn; i+) if (g-arcswi = 1 & visitedi = 0) EnQueue(&Q, i); /*入队*/visitedi = 1; /*标记已访问*/void main() MGraph g;int i, v;createGraph(&g); /*建图*/for (i = 0; i g.vn; i+) /*标记数组初始化*/visitedi = 0;printf(开始顶点:); /*输入遍历开始顶点*/scanf(%d, &v);printf(输出(dfs):); /*DFS输出*/dfs(&g, v);pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深圳春茗会动画
- 某公司企业文化培训
- 技能综合及诊断复习指导心理咨询师
- 数学函数建模及应用
- 电工技术正弦交流电路
- 生物化学第七章糖类代谢糖的有氧氧化
- 建造师执业资格考试大纲
- 八年级物理浮力课件
- 毕业答辩学生标兵
- 生活与哲学第二单元课件
- 2026宜宾市属国有企业人力资源中心宜宾天原科创设计有限公司公开招聘考试备考题库及答案解析
- 老年髋部骨折诊疗与管理指南2026年版
- 2026年重庆丰都县社区工作者招聘考试【结构化面试题库+高分答题模板】(含考官评分要点)
- 统编版九年级上册 道德与法治 第二单元《进入新时代》单元检测试卷(含答案)
- 2026江西九江长途汽车运输集团有限公司劳动合同制员工招聘4人考试模拟试题及答案解析
- 2026福汽集团审计稽核部招聘2人考试模拟试题及答案解析
- 四上2-8《呵护我们的器官》教学课件
- 新生儿PICC置管与维护技术
- CSCO肾癌诊疗指南2026
- 八年级英语上学期期中押题卷(深圳专用)原卷版
- 2025四川简阳农商行社会招聘笔试历年典型考题及考点剖析附带答案详解
评论
0/150
提交评论