已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉东湖学院实 验 报 告学院: 计算机科学学院 专业 计算机科学与技术 2016年 11月18日姓 名付磊学 号42班 级计科一班指导老师吴佳芬课程名称数据结构成绩实验名称图的存储结构和遍历1实验目的(1)了解邻接矩阵存储法和邻接表存储法的实现过程。(2)了解图的深度优先遍历和广度优先遍历的实现过程。2实验内容1. 采用图的邻接矩阵存储方法,实现下图的邻接矩阵存储,并输出该矩阵.2. 设计一个将第1小题中的邻接矩阵转换为邻接表的算法,并设计一个在屏幕上显示邻接表的算法3. 实现基于第2小题中邻接表的深度优先遍历算法,并输出遍历序列4. 实现基于第2小题中邻接表的广度优先遍历算法,并输出遍历序列3实验环境Visual C+ 6.04实验方法和步骤(含设计)我们通过二维数组中的值来表示图中节点与节点的关系。通过上图可知,其邻接矩阵示意图为如下:V0 v1 v2 v3 v4 v5V0 0 1 0 1 0 1V1 1 0 1 1 1 0V2 0 1 0 0 1 0V3 1 1 0 0 1 1V4 0 1 1 1 0 0V5 1 0 0 1 0 0此时的“1”表示这两个节点有关系,“0”表示这两个节点无关系。 我们通过邻接表来在计算机中存储图时,其邻接表存储图如下:5程序及测试结果# include # include int visited 6;typedef struct int a66; int n;mgraph;typedef struct ANode int adjvex;struct ANode *nextarc;ArcNode;typedef struct Vnode ArcNode *firstarc;VNode;typedef VNode AdjList6;typedef struct AdjList adjlist; int n;ALGraph;void mattolist (mgraph g,ALGraph *&G) int i,j; ArcNode *p; G=(ALGraph*)malloc(sizeof(ALGraph); for(i=0;iadjlisti.firstarc=NULL; for(i=0;i=0;j-) if(g.aij!=0) p=(ArcNode*)malloc(sizeof(ArcNode); p-adjvex=j; p-nextarc=G-adjlisti.firstarc; G-adjlisti.firstarc=p; G-n=g.n;void dispadj(ALGraph *G) int i; ArcNode *p;for(i=0;in;i+) p=G-adjlisti.firstarc; printf(%d:,i); while (p!=NULL) printf(%d ,p-adjvex); p=p-nextarc; printf(n);void dfs (ALGraph *G,int v)ArcNode *p;visited v=1;printf(%d ,v);p=G-adjlistv.firstarc;while (p!=NULL) if(visitedp-adjvex=0) dfs(G,p-adjvex); p=p-nextarc; void bfs (ALGraph *G ,int v) ArcNode *p; int queue6,front=0,rear=0; int visited6; int w,i; for(i=0;in;i+) visitedi=0; printf(%d ,v); visitedv=1; rear=(rear+1)%6; queuerear=v; while (front!=rear) front=(front+1)%6; w=queuefront; p=G-adjlistw.firstarc; while(p!=NULL) if(visitedp-adjvex=0) printf(%d ,p-adjvex); visitedp-adjvex=1; rear=(rear+1)%6; queuerear=p-adjvex; p=p-nextarc; printf(n);int main ()mgraph g;ALGraph *G; int a66=0,1,0,1,0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0;int i,j;g.n=6;for(i=0;ig.n;i+)for(j=0;jg.n;j+)g.aij=aij;for(i=0;ig.n;i+)for(j=0;jg.n;j+)printf(%d ,g.aij);printf(n);printf(-邻接矩阵-n);G=(ALGraph*)malloc(sizeof(ALGraph);mattolist(g,G);dispadj(G);printf(-邻接表-n);dfs(G,0);printf(n);printf(-从0开始的深度优先遍历-n); bfs(G,0); printf(n);printf(-从0开始的广度优先遍历-n);return 0;6实验分析与体会通过此次实验,使我更加深刻的明白了图在计算机中是如何存储的,图在计算机中的存储有两种,一种是邻接矩阵存储方式,这种方式我们主要是运用到了二维数组的特性,通过二维数组来明确表现出节点与节点的位置关系,第二种就是我们说的邻接表存储结构,这种结构主要是运用到了指针来实现。而当我们在进行图的遍历时,首先要选择一个起始点,上面我们选择的是0为起始点,当我们在进行深度优先遍历时,可以用递归的思想,而在广度优先遍历时,不能用递归,这个要注意。在这次的实验中,通过对图的操作,使我对数组和指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江宁波市北仑区人民医院医疗健康服务集团梅山院区招聘编外人员1人考试笔试参考题库及答案解析
- 2026年益阳职业技术学院单招职业技能考试题库及答案详解1套
- 2026年湖南省岳阳市单招职业倾向性测试题库带答案详解
- 2026年哈密职业技术学院单招职业适应性考试题库及答案详解一套
- 2026年丽水职业技术学院单招职业适应性考试题库及完整答案详解1套
- 2026年景德镇艺术职业大学单招职业适应性测试题库附答案详解
- 2026年四平职业大学单招职业技能测试题库及参考答案详解1套
- 2026年濮阳科技职业学院单招职业倾向性考试题库附答案详解
- 2026年甘肃交通职业技术学院单招职业技能测试题库及参考答案详解一套
- 2026年闽南理工学院单招职业适应性考试题库及参考答案详解
- 食品加工生产合同协议
- 新疆兵地联考试卷及答案
- 2025年12月大学英语四级考试真题及解析
- 2025年急性肺栓塞诊断和治疗指南解读课件
- 高级商务英语写作(第二版)课件 Unit 8. Business Contracts and Agreements
- 2026企业公司马年开门红大会模板
- 四川省巴中市2024-2025学年八年级上学期语文期末试卷(含答案)
- 2025年秋小学音乐湘艺版四年级上册期末测试卷及答案(三套)
- 四川省达州市达川区达州中学联盟2025-2026学年八年级上学期12月期中物理试题(含答案)
- 中小学主题班会课件:静能生慧习以养德
- 2025年焊工(初级)考试1000题及答案
评论
0/150
提交评论