- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大二上 数据结构课程设计 学校超市选址问题 带权
大二上 数据结构课程设计 学校超市选址问题 带权 设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。 解决方案:轮流以每一个顶点为源点,重复执行Dijkstra算法n次,就可求得每一对顶点之间的最短路径及最短路径长度,总的执行时间是O(n3)。 Dijkstra算法:Dijkstra算法也称单源最短路径。 为了求得这些最短路径,Dijkstra提出了按路径长度的递增次序,逐步产生最短路径的算法。首先求出长度最短的一条最短路径,然后参照它求出长度次短的一条最短路径,依次类推,直到从顶点u到其它各顶点的最短路径全部求出为止。 由于本人能力有限,时间有限所有只能写出这样的代码啦。也就应付应付学校,内存的回收工作都没有去写,还有很多扩展也没有去做。如果各位朋友有兴趣可以自己去扩展,比如加个点,加条边等等,都可以很方便的扩展。 这个程序是我用邻接表来实现的,网上有很多用邻接矩阵来实现。但他们的思想是一样的,都是用了Dijkstra算法。也许这个程序是我在大学写的最后一个用C++写的算法程序了吧。由于本人不喜欢研究这些神马般的算法,我更喜欢用C#,用VS来创造现实中有意义的东西。这也是我的目标成为一名优秀的工程师而不是一名研究人员。 还有一点我要声明,这个程序不希望有人用来做为应付学校工具,我希望大家在学习中找到快乐,而不是无尽的痛苦。 如果各位有兴趣,我正在做PPT和实验报告,大家可以问我要来参考一下。 还有,在程序中有些程序段我打了注释是一些测试代码而非实现代码。 源代码: 一个源文件 ////////////main.cpp////////////// #includeMyGraph.h #includeMyMethods.h void main() { cout*endl; cout*问题:学校超市选址问题(带权有向图的中心点)*endl; cout*endl; cout endl endl; int n=0,v=-1,BestVertex=-1;//初始化(n表示结点数,v表示源点) MyGraph*myGraph; MyMethods*myMethods=new MyMethods();//声明一个实例(包含了一些方法) do{ cout*endl; cout主菜单endl; cout1.读取文本数据endl; cout2.建立邻接表endl; cout3.输出邻接表endl; cout4.选择源点Vendl; cout5.得到源点的最短路径endl; cout6.得到中心最短路径endl; cout*endl; int choose; cout请选择(-1退出):;cin choose; if(choose==-1)return;//退出 switch(choose) { case 1: n=myMethods-ReadVertices(); myGraph=new MyGraph(n); break; case 2: if(n==0)break; cout邻接表正在建立中.endl; myGraph-Init(); break; case 3: if(n==0)break; myGraph-Display(); break; case 4: if(n==0)break; cout*注意:*请输入源点v(0~n-1):; cin v; break; case 5: if(n==0||v==-1)break; cout输出从源点到其它路径:endl; myGraph-Dijkstra(v); break; case 6: if(n==0)break; cout*下面给出所有路径*endl; BestVertex=myGraph-SelectBestVertex(); cout*endl; cout*综上所述,最佳点为:BestVertex点!endl; cout*endl; break; default: cout输入出错,请重新输入!endl; } if(n==0) { cout请先读取Vertices.txt文档内容。endl endl; continue; } cout endl; }while(true); } 两个头文件 ////////////MyGraph.h////////////// #include iostream.h #include fstream.h #include stdlib.h //边结构体 struct Edge { int dest;//边的另一个顶点的位置 int cost;//边上的权值 Edge*link;//下一条边链指针 Edge(int num,int weight) { dest=num;cost=wei
您可能关注的文档
最近下载
- 专题07 作文(2023-2025年期中典型试题)(解析版)(2023-2025年期中典型试题,上海专用)八年级语文上册新教材.docx VIP
- 2025年MK 袋鼠数学竞赛Level-B (3-4年级) 真题+解析.pdf
- 初中语文诗词易错字34篇.pdf VIP
- 电子商务物流第二版毕娅习题答案.doc VIP
- 学堂在线 大国航母与舰载机(2025秋) 作业答案.docx VIP
- 《生涯发展报告》.pdf.pptx VIP
- LTCC多层电路基板设计规范-2016简版-1.pdf VIP
- 四年级语文上册第八单元作业设计.pdf VIP
- 学堂课程在线人工智能原理(北大)章节测试答案.docx
- 学前教育学专业职业生涯规划书发展报告应届硕士毕业生全国大学生职业规划大赛模板范文1500字.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)