




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工业大学计算机科学与技术学院实验报告课程名称:数据结构与算法课程类型:必修实验项目名称:图型结构及其应用实验题目:图的存储结构的建立与遍历(搜索)班级:1103102学号:1110310208姓名:张红阳设计成绩报告成绩指导老师一、 实验目的1.学会有向图和无向图数据结构的用法,掌握有向无向图的存储结构,包括邻接矩阵和邻接表。2.熟练掌握在邻接矩阵和邻接表存储结构上对(有向和无向)图进行深度优先(递归和非递归都要求)和广度优先搜索的算法。3.熟练掌握存储和显示(有向和无向)图的算法,包括生成森林(树)、序列和编号。4.学会以文件形式建立图的方法。二、实验要求及实验环境1.实验要求:(1)能够建立(有向和无向)图的邻接矩阵和邻接表存储结构(2)能够在邻接矩阵和邻接表存储结构上对(有向和无向)图进行深度优先(递归和非递归都要求)和广度优先搜索(3)能够存储和显示相应的搜索结果(深度优先或广度优先生成森林(或生成树)、深度优先或广度优先序列和编号)(4)以文件形式输入图的顶点和边,并显示相应的结果。要求顶点不少于10个,边不少于13个(5)软件功能结构安排合理,界面友好,便于使用2.实验环境:Windows下的vs2010。三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)1逻辑设计:(1)、主程序流程图:(2)、图的存储结构定义:const int NumVertices = 50;typedef structchar vertex NumVertices;int edgeNumVerticesNumVertices;int n, e;MTGraph;2物理设计:四、测试结果Graphdata.txt :测试结果:五、系统不足与经验体会1.只用了邻接矩阵表示图,没有用邻接表。2.图的顶点表示只能单个字符,不能多个字符。3.注意数据要及时初始化,如visited的初始化。4.要时刻注意栈的状态,注意栈空的条件判断,否则会出现溢出栈的错误,导致程序崩溃。5.写程序时要及时的加上注释,便于修改。六、附录:源代码(带注释)#include#include #include#includeusing namespace std;const int NumVertices = 50;typedef structchar vertex NumVertices;/顶点表int edgeNumVerticesNumVertices;/邻接矩阵边表, 可视为边之间的关系int n, e;/图的顶点数与边数MTGraph;void CreateMGragh(MTGraph *G) /建立图的邻接矩阵 for (int i=0; in; i+)for (int j=0; jn; j+) G -edgeij = 0; /邻接矩阵初始化ifstream in(Graphdata.txt);if(!in) coutfail to open the file. G -n G -e;for(int i = 0; i n; i+)in G -vertexi;for(int i = 0; i e; i+)int a, b;in a b;G -edgeab = 1;G -edgeba = 1;/如建立有向图则删去此句in.close();typedef enumFALSE,TRUE Boolean;Boolean visitedNumVertices;int bfnNumVertices;int dnf1NumVertices;int dnf2NumVertices;int Count;void ShowFS(int Fn, MTGraph *G)cout 顶点的编号: ;for(int i=0; in; i+)cout Fni ;cout endl;/=DFS:深度优先遍历的递归算法=void DFSM(MTGraph *G,int i) /以Vi为出发点对邻接矩阵表示的图G进行DFS搜索,邻接矩阵是0,1矩阵int j;cout vertexi ;visitedi = TRUE; /置已访问标志dnf1Count+ = i;for(j=0; jn; j+) /依次搜索Vi的邻接点if(G -edgeij = 1 & !visitedj)DFSM(G,j); /(Vi,Vj)E,且Vj未访问过,故Vj为新出发点void DFS1(MTGraph *G) int i;Count = 0;for(i=0; in; i+)visitedi = FALSE; /标志向量初始化for(i=0;in;i+)if(!visitedi) /Vi未访问过DFSM(G,i); /以Vi为源点开始DFS搜索cout endl;ShowFS(dnf1, G);/=DFS:深度优先遍历的非递归算法=void DFSNonrecur(MTGraph *G,int index) int i; stack s;cout vertexindex ;visitedindex = TRUE;dnf2Count+ = index;s.push(index);while(!s.empty() for(i = 0; i n; +i) if(G -edgeiindex = 1) & (visitedi = FALSE) index = i;cout vertexindex n) & (!s.empty() s.pop();if(!s.empty()index = s.top(); void DFS2(MTGraph *G) int i;Count = 0;for(i=0; in; i+)visitedi = FALSE; /标志向量初始化for(i=0;in;i+)if(!visitedi) /Vi未访问过DFSNonrecur(G,i); /以Vi为源点开始DFS搜索cout endl;ShowFS(dnf1, G);/=BFS:广度优先遍历=void BFSX(MTGraph *G, int k) /以Vk为源点对用邻接矩阵表示的图G进行广度优先搜索int i;queue Q;cout vertexk ;/访问vkvisitedk = TRUE;bfnCount+ = k; /对vk进行编号Q.push(k);while(!Q.empty()i = Q.front();Q.pop();/vi出队for (int j = 0; j n; j+)if(G -edgeij = 1) & (visitedj = FALSE)cout vertexj ;visitedj = TRUE;bfnCount+ = j;/对vj进行编号Q.push(j);void BFS(MTGraph *G)/ 先广搜索一邻接表表示的图G;而以邻接矩阵表示G时,算法 完全相同 */int i; Count = 0;for ( i = 0; i n; i+) visited i =FALSE; /标志数组初始化for ( i = 0; i n; i+) if (!visitedi) BFSX (G, i); /从顶点 i 出发的一次搜索,DFSX (G, i )cout endl;ShowFS(bfn, G);void Initialization(MTGraph *G)/初始化G for(int i=0; iNumVertices; i+) for(int j=0; jedgeij = 0; for(int k=0; kvertexk = NULL;int main()MTGraph *G;G =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术品邮票发行行业跨境出海战略研究报告
- 语言交换伙伴匹配行业深度调研及发展战略咨询报告
- 区块链保险应用行业深度调研及发展战略咨询报告
- 旅游融资担保行业跨境出海战略研究报告
- 在线金融社区行业深度调研及发展战略咨询报告
- 股权代持协议书范本模板
- 语音合成闹钟行业深度调研及发展战略咨询报告
- 智能信贷审批企业制定与实施新质生产力战略研究报告
- 企业融资结构咨询行业深度调研及发展战略咨询报告
- JJG 2012-1987 国家检定校准 规范
- 2025浙江温州市公用事业发展集团有限公司招聘54人(第一批)笔试参考题库附带答案详解
- 新能源汽车驱动电机及控制技术 课件 项目4 驱动电机控制系统结构原理与检测
- 小学生防诈骗课件
- 2025年菠萝种植市场分析报告
- 2025年湖北省中考道德与法治模拟卷(1)(含答案)
- (一模)2025年广州市普通高中毕业班综合测试(一)生物试卷(含答案)
- 专题05 首字母填空20篇(名校期末真题)-八年级英语下册重难点讲练全攻略(牛津上海版)
- 湖南省宁远一中2024-2025学年高一下学期第一次月考化学试卷(原卷版+解析版)
- 2025年浙江义乌中国小商品城进出口有限公司招聘笔试参考题库附带答案详解
- 人要有自信+课件-+2024-2025学年统编版道德与法治七年级下册
- (二调)武汉市2025届高中毕业生二月调研考试 历史试卷
评论
0/150
提交评论