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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单源结点最短路径问题设计书Word格式文档下载.docx

1、typedef char DataType; /定义顺序表的数据类型为char#define MaxSize 10 /定义顺序表数组的最大个数#define MaxVertices 10 /定义顶点的最大个数#define MaxWeight 10000 /定义权值的具体最大值#include AdjMGraph.h /包含AdjMGraph.h头文件AdjMGraphCreate.h /包含AdjMGraphCreate.h头文件Dijkstra.h /包含Dijkstra.h函数的文件void main(void) AdjMGraph g; char a=A,BCDEF; RowColWe

2、ight rcw= 0,1,10,0,2,12,1,3,16,1,4,25,2,0,4,2,1,3,2,3,12, 2,5,8,3,4,7,5,3,2,5,4,10; int i,n=6,e=11; int distance6,path6; CreatGraph(&g,a,n,rcw,e); Dijkstra(g,0,distance,path); printf(nt从顶点%c到其余各顶点的最短路径值分别为:n,g.Vertices.list0); for(i=1;in;i+)t%c到%c 的最短路径值为:%dn, g.Vertices.list0, g.Vertices.listi,dist

3、ancei);nt从顶点%c到其余各顶点的最短路径的前一顶点为: if(pathi !=-1)t%c到%c 的最短路径的前一顶点为%cn,g.Vertices.list0, g.Vertices.listi,g.Vertices.listpathi);4算法测试及结果从程序的运行结果,再结合测试数据的有向带权图,可以得出,从顶点A到其余各顶点的最短路径及距离如下。A到B: 最短路径为(A,B),其距离为 10A到C: 最短路径为(A,C),其距离为 12A到D: 最短路径为(A,C,F,D),其距离为 22A到E: 最短路径为(A,C,F,D,E),其距离为 29A到F: 最短路径为(A,C,

4、F),其距离为205总结课程设计对学生而言是其对所学课程容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学容;数据结构从课程性质上讲是一门专业基础课,它的目的和任务就是训练学生对计算机加工的数据对象进行分析的能力,选择适当的数据结构及相应算法的能力,训练学生的编码以及调试能力,进而增加其对学习和应用相关专业课的兴趣。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,将结论用于实践,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中当

5、然遇到了问题,可以说得是困难重重,毕竟这是不可避免的,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。由于编程水平有限,其中头文件和狄杰斯特拉算法的函数设计等是参考书上资料,我想在以后的学习中,要更注重实践这一环节。在设计的过程中遇到种种问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。从设计过程看,在整整半个月的日子里,做到精益求精,学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。从设计结果

6、看,设计要求完成任务,达到了预期的目的,设计、演示效果较好。最主要是从中学到了知识。参考资料1 朱战立.数据结构-使用C语言M.:电子工业,2009.2 Clifford A shaffer.数据结构与算法分析M.:电子工业,20063 Sartaj Sahni.数据结构、算法与应用M.小,译.:机械工业,2006.4 梁田贵,鹏. 算法设计与分析M: 冶金工业,2004.5 广树健.C语言程序设计M.:华南理工大学,2008.6 胡学刚. 算法与数据结构算法设计指导M.: 清华大学,20007 许卓群,冬青,唐世渭,铭. 数据结构与算法M.: 高等教育,2004.附件:AdjMGraph.h

7、头文件SeqList.h /包含顺序表头文件typedef struct SeqList Vertices; /存放顶点的顺序表 int edgeMaxVerticesMaxVertices; /存放边的邻接矩阵 int numOfEdges; /边的条数AdjMGraph; /图的结构体定义void Initiate(AdjMGraph *G,int n) /初始化 int i,j; for(i=0; for(j=0;jedgeij=0; else G-edgeij=MaxWeight; /MaxWeight表示无穷大 G-numOfEdges=0; /边的条数置为0 ListInitiat

8、e(&G-Vertices); /顺序表初始化void InsertVertex(AdjMGraph *G,DataType vertex) /在图G中插入顶点vertex ListInsert(&Vertices,G-Vertices.size,vertex); /顺序表尾插入void InsertEdge(AdjMGraph *G,int v1,int v2,int weight) /在图G中插入边,边的权为weight if(v1Vertices.size|v2Vertices.size) printf(参数v1或v2越界出错!); return; edgev1v2=weight;num

9、OfEdges+;void DeleteEdge(AdjMGraph *G,int v1,int v2)/在图G中删除边edgev1v2=MaxWeight|v1=v2)该边不存在!edgev1v2=MaxWeight;numOfEdges-;int GetFirstVex(AdjMGraph G,int v)/在图G中寻找序号为V的顶点的第一个邻接顶点/如果这样的邻接顶点存在,则返回该邻接顶点的序号;否则返回-1 int col; if(vG.Vertices.size)参数v1越界出错! return -1; for(col=0;col0&G.edgevcolMaxWeight)retur

10、n col;int GetNextVex(AdjMGraph G,int v1,int v2)/在图G中寻找v1顶点的邻接顶点v2的下一个邻接顶点/v1和v2都是相应顶点的序号G.Vertices.size|v2G.edgev1col return -1;AdjMGraphCreate.h头文件 int row; /行下标 /列下标 int weight; /权值RowColWeight; /边信息结构体定义void CreatGraph(AdjMGraph *G,DataType V,int n,RowColWeight E,int e)/在图G中插入n个顶点信息V和e条边信息E int i,k; Initiate(G,n); /顶点顺序表初始化 InsertVertex(G,Vi); /插入顶点 for(k=0;ke;k+) InsertEdge(G,Ek.row,Ek.col,Ek.weight); /插入边Dijkstra.h头文件void Dijkstra(AdjMGraph G,int v1,int distance,int path)/带权图G从下标v0顶点到其他顶点的最短距离distance和最短路径下标path int n=G.Vertices.size; int *s=(int *)malloc(sizeof(in

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

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