图实验报告十一月整理.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
闽 江 学 院 电 子 系 实 验 报 告 学生姓名: 班级: 学 号: 课程:算法与数据结构 一、实验题目::图及其应用 一、 实验地点:实验楼A210 二、 实验目的: . 熟练掌握图的两种存储结构(邻接矩阵和邻接表) 的表示方法 . 掌握图的基本运算及应用 . 加深对图的理解,逐步培养解决实际问题的编程能力 三、 实验内容: . 采用邻接表或邻接矩阵方式存储图,实现图的深度遍历和广度遍历; . 用广度优先搜索方法找出从一顶点到另一顶点边数最少的路径; . 图的存储结构的转换。 四、 实验环境(使用的软硬件): Visual C++集成开发环境 五、实验步骤及操作 1.启动VC++ ; 2. 新建工程/Win32 Console Application ,选择输入位置:输入工程的名称:tu ; 按“确定”按钮,选择“An Empty Project ”,再按“完成”按钮, 3.新建文件/C++ Source File ,选中“添加到工程的复选按钮”,输入文件名“1. cpp”,按“确定” 按钮,在显示的代码编辑区内输入如下的参考程序: #include stdio.h #include stdlib.h #define Infinity 1000 #define MAX 20 1 typedef struct{ int vexnum; //顶点数目 int arcnum; //弧数目 char vexs[MAX]; //顶点向量 int arcs[MAX][MAX]; //邻接矩阵 char kind; //图的种类:有向图D,无向图U }MGraph; //图的建立 MGraph Creat_MGraph(){ MGraph G; int i,j,k,w; char v1,v2; printf(请输入图的种类(有向图(D),无向图(U)!\n); scanf(%c,G.kind); printf(请输入顶点数目和弧数目!\n); scanf(%d%d,G.vexnum,G.arcnum); getchar(); printf(请输入各个顶点(abc)!\n); for(i=0;iG.vexnum;i++) scanf(%c,G.vexs[i]); getchar(); for(i=0;iG.vexnum;i++){ for(j=0;jG.vexnum;j++) G.arcs[i][j]=Infinity; } for(i=0;iG.arcnum;i++){ printf(请输入第 (%d) 条弧的起始点和它的权重(ccd)!\n,i+1); scanf(%c%c%d,v1,v2,w); getchar(); j=k=0; while(G.vexs[j]!=v1) j++; //起点 while(G.vexs[k]!=v2) k++; //终点 G.arcs[j][k]=w; if(G.kind==U) 2 G.arcs[k][j]=w; } return G; } int visited[MAX]; //标志数组,显示是否遍历 //递归深度遍历调用函数 void DFS(MGraph G,int i){ int j; visited[i]=1; printf( %c ,G.vexs[i]); for(j=0;jG.vexnum;j++)

您可能关注的文档

文档评论(0)

tiger03 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档