




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_实验五 图操作实现实验日期: 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; 访问标记数组定义: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)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)统计非连通图的连同分量个数。(说明:借助遍历算法实现)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 *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-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.cpp:#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); /*邻接矩阵存储的图的深度优先搜索*/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(输入结构: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 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);printf(n);for (i = 0; i g.vn; i+) /*标记数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木材加工过程中的能耗分析与节能考核试卷
- 疫病防控监测设备使用与维护考核试卷
- 羽绒制品企业人力资源绩效管理考核试卷
- 舞台灯光设备的人机工程学考量考核试卷
- 英语电影分析与讨论考核试卷
- 石棉制品生产过程中的环境保护考核试卷
- 羽绒加工企业生产安全应急预案考核试卷
- 纸质文具行业市场前景与消费趋势预测方法考核试卷
- 天然气开采业的社会经济效益评估与分析考核试卷
- 石材表面装饰工艺探讨考核试卷
- 基于西门子PLC自动旋转门的设计毕业设计
- GB/T 3098.6-2023紧固件机械性能不锈钢螺栓、螺钉和螺柱
- 锌银电池的资料
- 七人学生小品《如此课堂》剧本台词手稿
- RFJ05-2009-DQ人民防空工程电气大样图集
- 毕业设计(论文)-纯电动汽车电池管理系统(bms)管理资料
- 医疗机构消毒技术规范(2023年版)
- 农户贷款管理办法银监发〔2012〕50号
- 儿科-补液-液体疗法课件
- 优生优育TORCH检测临床意义与临床咨询课件
- 《踏雪寻梅》合唱谱
评论
0/150
提交评论