ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:89.51KB ,
资源ID:16407222      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16407222.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图结构试验实验报告Word下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图结构试验实验报告Word下载.docx

1、第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开(完成)以此类推输入下一个示例(完成)Output每行输出一个图的深度优先搜索结果,结点编号之间用空格隔开(完成)Problem B: DS图遍历-广度优先搜索以此类推输入下一个示例每行输出一个图的广度优先搜索结果,结点编号之间用空格隔开(完成)Contest1638 - DS实验09-最短路径【11.19】 DS图应用-最短路径给出一个图的邻接矩阵,再给出指定顶点v0,求顶点v0到其他顶点的最短路径(完成)第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开第四行输入v0,表示求v0到其他顶点的最短路径距离(

2、完成)每行输出v0到某个顶点的最短距离和最短路径(完成)每行格式:v0编号-其他顶点编号-最短路径,具体请参考示范数据(完成)二、主要思路与方法:1. 对于本次实验,说明你认为最重要的函数、算法或知识点,并谈谈你对它们的理解从0开始连续获取邻接结点,然后逐个遍历并设Visit为true避免重复遍历首先将该顶点的邻接顶点全部入队,然后挨个读取,在读取的过程中继续将邻接矩阵入队,并把已经读取过的顶点全被设为true。 输入mx矩阵Mx12345715初始化并赋值Matrix的矩阵Matrix初始化并赋值path的矩阵Path-1初始化并赋值dist数组Dist初始并赋值len数组Len i=1的时

3、候;min=9999;v=1;min=5;final1=true;可以访问。Dist2=5+ Matrix12=10;2=1;Path数组改变Dist数组改变10v=3;min=7;final3=true;Dist2=7+ Matrix32=9;2=3;9v=2;min=9;final2=true;Dist4=9+Matrix24=10;4=2;6三实验程序或内容:1. 针对每一项实验要求,给出编写的代码,2. 可以粘贴全部代码,或者可以只粘贴重要的代码(为了节省纸张),但代码必须完整,至少是完整的函数。3. 代码符合以下要求,评分更高:a. 排版整齐,可读性高b. 代码有注释,越详细越清晰越

4、好#includeusing namespace std;const int MaxLen=20;class Map private: bool VisitMaxLen; int MatrixMaxLenMaxLen; int Vexnum; void DFS(int v);public: void SetMatrix(int vnum,int mxMaxLenMaxLen); void DFSTraverse();/设置邻接矩阵 void Map:SetMatrix(int vnum,int mxMaxLenMaxLen) int i,j; Vexnum=vnum; for(i=-1;+iM

5、axLen;) for(j=-1;+j Matrixij=0;Vexnum; Matrixij=mxij; DFSTraverse() int v; /将所有的Visit赋值为false for(v=-1;+v Visitv=false; /开始逐个遍历未访问结点 if(!Visitv) DFS(v); /if /for coutendl;DFS(int v) int w,i,k; Visitv=true; /输出访问的结点vt; while(t-) n; int mx2020;mxij; m.SetMatrix(n,mx); m.DFSTraverse(); return 0;queue v

6、oid BFSTraverse(); void BFS(int v);BFSTraverse() BFS(0);BFS(int v) int w,u; int i,k; queueQ; Visiti=false; Q.push(v); while(!Q.empty() u=Q.front(); Q.pop(); if(Matrixui) Visitw=true;w Q.push(w); /for /while m.BFSTraverse();const int MaxDist=9999; void ShortestPath_DIJ(int v0);SetMatrix(int vnum,int

7、mxMaxLenMaxLen) /给矩阵赋值 /定点数量赋值 /先给所有的矩阵初始化为9999) Matrixij=MaxDist; /把mx矩阵的内容赋给Matrix if(mxij) ShortestPath_DIJ(int v0) int i,j,v,w,min; int *dist=new intVexnum; bool *final=new boolVexnum; int pathMaxLenMaxLen; int lenMaxLen; /给final初始化为false,将Matrix指定行的值赋给dist /path数组全部赋值为-1) finali=false; disti=Ma

8、trixv0i; pathij=-1; /如果dist中的值小于9999的话 /path指定列赋值为v0 /path的左上右下对角线赋值为v /指定顶点的长度赋值为Vexnum /path的作用是一个顶点有一行,这一行里从左到右表示依次到达的结点 /例如第二行下标为1 /0 2 3 1表示从0到2到3到1 /若为最终结果即为从0到1的所有路径中的最短路径 /0行则没必要标出了。 /path的赋值是从列开始的 /这个时候dist0=9999 if(distvMaxDist) pathvv0=v0; pathvv=v; lenv=Vexnum; /dist指定位置的值赋值为0 /v0设置为已经访问

9、 distv0=0; finalv0=true; /最小值等于9999 /判断是否未访问 /若未访问,如果distw小于最小值,就记录w和distw,分别赋给v和min /v位置为最小值的位置,设定为true /如果finalw未访问且最小值加上矩阵vw位置的值仍然小于distw /distw取值min+Matrixvw /然后领把v行的path值赋给w行 /在w行末尾加个w /w行的长度等于v行加1 for(i=0;) /跳过0 /找到dist中的未被标记为true的最小值,然后标记为true,然后遍历邻接结点 min=MaxDist; for(w=-1;+w if(!finalw) if(

10、distwmin)v=w;min=distw;/if finalv=true;) /min+Matrixvwdistw有这个判断的原因是 /比如我想从A点到B点,它的权值为30 /但是我从A点先到C点,再到B点,它的权值和为25 /那这样的话明显是先经过C点再到B点这个路径更好 /!finalw是遍历其余的为遍历过的结点,避免与上一个已访问过的结点遍历finalw&(min+Matrixvwdistw) distw=min+Matrixvw;lenv; /赋值的原因是从这个路径pathv(0-XXX-v)再到(w)能获得更短的路径 pathwj=pathvj; /在行尾加上当前结点,即从(0-

11、XXX-v-w) pathwj=w; lenw=lenv+1; /if /输出 if(i!=v0) v0-idisti- if(pathij!=-1) pathij deletedist; deletefinal; int i,j,k,t; int vnum,v0; int mxMaxLenMaxLen; Map myMap; for(k=0;kk+) i+) for(j=0;jj+) mxij=0;vnum; myMap.SetMatrix(vnum,mx);v0; myMap.ShortestPath_DIJ(v0);四、实验结论:1、根据你完成的每个实验要求,给出相应的实验结果图,并结合图来解析运行过程2、如果运行过程简单,只要贴出VC运行的结果图。3、如果无结果图,有网站的判定结果,贴出相应结果Sample Input0 0 1 11 1 0 11 1 1 00 0 0 1 10 0 1 0 00 1 0 1 11 0 1 0 0Sample Output0 2 1 3 0 3 2 1 4 Pr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1