


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*Dijkstra(最短路)算法*/#include /预编译命令#include /定义了INT_MAXusing namespace std;unst int SIZE; /图中顶点总数/Function name :Dijkstra/Description :计算有向图中起点到终点的最短距离/Return type :int,最短路的长度/Argument :int EdgeSIZESIZE,输入参数,图信息/Argument :int nStart,输入参数,起点/Argument :int Dest,输入参数,终点/Argument :int PathSIZE,返回参数,路径信息int Dijkstra(int EdgeSIZESIZE, int nStart, int Dest, int PathSIZE)int MinDisSIZE; /起点到个点最短路径长度bool InS2SIZE; /标志各点是否在 S2中/初始化int i;for(i=0;iSIZE;i+) InS2i=true;InS2nStart=false; /初始状态只有nStart在S1中,其余在S2中for(i=0;iSIZE;i+) MinDisi=EdgenStarti; /初始各点的最大距离 if (EdgenStarti INT_MAX) Pathi=nStart; /最短路径的前一点 else Pathi=-1; /表示前一点不存在/进行计算while(InS2nDest) /当nDest还在S2内则计算 /查找S2中最短路径长度最小值的点 int nMinLen=INT_MAX; /最短路径长度的最小值 int nPoint=-1; /拥有最小值的点 for(i=0;iSIZE;i+) /查找 if(InS2i) & (MinDisinMinLen) nMinLen=MinDisi; nPoint=i; If(nMinLen=INT_MAX) /S2中的点不能从起点走到 break; /更新S2和MinDis InS2nPoint=false; /该点从S2移入S1 for(i=0;iSIZE;i+) if(InS2i) & (EdgenPointiINT_MAX) /对于在S2中的带您与该点有边相连 int nNewLen=nMinLen+EdgenPointi; if(nNewLenMinDisi) /如果原路径长 Pathi=nPoint; /更新路径 MinDisi=nNewLen; /更新路径长度 Return MinDisnDest;/Function name :OutputPath/Description :输出路径信息/Return type :void/Argument :int PathSIZE,路径信息/Argument :int nDest,终点void OutputPath(int PathSIZE,int nDest) if(PathnDest=-1) cout”没有从起点到v”nDest”的路径”endl; else if(PathnDest=nDest) /是起点 coutvnDest; else OutputPath(Path,PathnDest); /输出前面的路径 coutv”nDest; /输出这一段边int main() /主函数 int EdgeSIZESIZE; int i,j; /图信息/构造图信息 for(i=0;iSIZE;i+) for(j=0;jSIZE;j+) Edgeij=INT_MAX; Edgeij=0; Edge01=10; Edge02=12; Edge13=10; Edge24=7; Edge30=15; Edge31=12; Edge34=7; int PathSIZE; /记录最短路径信息 int nPathLength=Dijkstra(Edge,0,4,Path) /计算v0到v4的最短路径长度 if(nPathLength=INT_MAX) cout”从v0到v4没有路径可通”endl; else cout” 从v0到v4的路径为:”endl; OutputPath(Path,4); /输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省常熟市重点名校2024-2025学年初三一诊模拟数学试题含解析
- 忻州市保德县2025届三年级数学第二学期期末调研试题含解析
- 西安财经大学《中国古代文学作品选与中学语文(三)》2023-2024学年第一学期期末试卷
- 湖南医药学院《检测仪表与过程控制》2023-2024学年第二学期期末试卷
- 万科物业保洁培训计划
- 湛江市高三测试题(一)文综地理试卷
- 化学产品开发流程的8个关键步骤
- 化学实验室原始记录规范
- 2025版权转让协议合同范本
- 双肾囊肿护理查房
- GB/T 6451-2023油浸式电力变压器技术参数和要求
- 幼儿园中班绘本《城市里最漂亮的巨人》课件
- 医院廉洁行医廉政教育专题课件
- 医务人员职业健康安全健康-课件
- 安全组织机构图
- 旧石器时代考古-基础知识课件
- 江苏省建设工程现场安全文明施工措施费计价管理办法
- 病区药品规范化管理与问题对策黄池桃
- 螺纹塞规操作规程
- 2023年北京天文馆招聘笔试备考题库及答案解析
- 应急救援队伍单兵体能训练项目要求
评论
0/150
提交评论