图的存储结构和遍历实习报告.doc_第1页
图的存储结构和遍历实习报告.doc_第2页
图的存储结构和遍历实习报告.doc_第3页
图的存储结构和遍历实习报告.doc_第4页
图的存储结构和遍历实习报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告学院: 计算机科学学院 专业: 计算机应用 2012年12月15 日姓 名程咬金学 级计应2班指导老师孔子课程名称数据结构成绩实验名称图的存储结构和遍历1实验目的掌握图的两种存储结构,邻接矩阵存储法和邻接表存储法了解图的两种存储结构的实现过程掌握图的深度优先遍历和广度优先遍历的方法了解图的深度优先遍历和广度优先遍历的实现过程2实验内容1. 采用图的邻接矩阵存储方法,画出上图的邻接矩阵2. 采用图的邻接表存储方法,画出上图的邻接表结构3. 基于第2题的邻接表,写出图的深度优先遍历序列和广度优先遍历序列4. 运行程序Graph.cpp,了解图的存储方法和遍历算法的实现过程3实验环境操作系统: windows 7编译器:VC+6.04实验方法和步骤(含设计)要求:正文五号字,行间距:最小值 0磅。段前0.5行,段后0,5行写出每个题目的解题思路。1. 解题思路:(请写出无向图邻接矩阵公式,并按公式画出图对应的邻接矩阵)邻接矩阵是表示顶点之间相邻关系的矩阵,设G=(V,E)是具有n(n0)个顶点的图,顶点的顺序依次为(v0,v1,vn-1),则G的无向邻接矩阵A是n阶方阵,其定义如下:Aij=邻接矩阵如下:G= 2.解题思路:(请画出无向图对应的邻接表存储结构)3.解题思路:(请写出深度优先遍历和广度优先遍历的算法基本思想,并写出遍历序列,无需编写程序)深度优先搜索遍历的过程:从图中某个初始顶点v出发,首先访问初始顶点V,然后选择一个与顶点V相邻且没有被访问过的顶点W为初始顶点,在从W出发进行深度优先搜索,直到图中与当前顶点V相邻的所有顶点都被访问过为止,这个过程是递归过程。以V1开始深度优先遍历序列:v1 v2 v3 v5 v4 v6广度优先搜索遍历的过程:首先访问初始点Vi,接着访问V的所有未被访问过的邻接点V1,V2,V3,V4,Vt,然后再按照其次序访问每一个顶点的所有未被访问过的邻接点,以此类推,直到图中所有和初始点V有路径相通的顶点都被访问过为止。以V1为初始点。广度优先遍历:v1 v2 v4 v6 v3 v54.(请运行程序,如有可能,请你尽力为代码写注释。将运行结果写在实验报告中。选作:请你自己任意在教材上选取一个无向图,并在程序中按照你选取的无向图修改程序,运行程序,观察输出的邻接表结果)5程序及测试结果:#include #include #define MAXV 10typedef structint no;int info;Vertex;typedef structint edgesMAXVMAXV;int n,e;Vertex vexsMAXV;MGraph;void matrix(MGraph &g)g.n=6;int AMAXV=1,2,3,4,5,6;for(int i=0;ig.n;i+)g.vexsi.no=Ai;g.e=9;int BMAXVMAXV=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 j,k;for(j=0;jg.n;j+)for(k=0;kg.n;k+)g.edgesjk=Bjk;printf(%2d,g.edgesjk);printf( );printf(n);typedef struct ANodeint adjvex;struct ANode *nextarc;int info;ArcNode;typedef struct VNodeVertex data;ArcNode *firstarc;VNode;typedef VNode AdjListMAXV;typedef structAdjList adjlist;int n,e;ALGraph;void MatToList(MGraph g,ALGraph *&G)int i,j,n=g.n;ArcNode *p;G=(ALGraph*)malloc(sizeof(ALGraph);for(i=0;iadjlisti.data.no=g.vexsi.no;G-adjlisti.firstarc=NULL;for(i=0;i=0;j-)if(g.edgesij!=0)p=(ArcNode*)malloc(sizeof(ArcNode);p-adjvex=j+1;p-nextarc=G-adjlisti.firstarc;G-adjlisti.firstarc=p;G-n=n;G-e=g.e;void displayALGraph(ALGraph* g)int i;for(i=0;in;i+)printf(%d: ,g-adjlisti.data.no);ArcNode* p=g-adjlisti.firstarc;if(p!=NULL)printf(%d ,p-adjvex);p=p-nextarc;while(p!=NULL)printf(%d ,p-adjvex);p=p-nextarc;printf(n);void main()MGraph g1;matrix(g1);ALGraph* g2;MatToList(g1,g2);printf(n);displayALGraph(g2);运行结果:6实验分析与体会 通过本次实验,使我掌握了图的两种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论