




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用编程求最短路径喆赫 20091101358数学科学学院 信息与计算科学 2009级1班指导教师 冯世斌摘 要 最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括;确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题 - 求图中所有的最短路径。关键词 编程;离散数学;最短路径;图论用于解决最短路径问题的算法被称作“最短路径算法”, 有时被简称为“路径算法”。1最短路径算法1.1最短路径常用算法最常用的路径算法有:Dijkstra算法、A*算法、SPFA算法、Bellman-Ford算法、Floyd-Warshall算法、Johnson算法等。1.2 最短路径单元问题所谓单源最短路径问题是指:已知图G(V,E),我们希望找出从某给定的源结点SV到V中的每个结点的最短路径。 首先,我们可以发现有这样一个事实:如果P是G中从vs到vj的最短路,vi是P中的一个点,那么,从vs沿P到vi的路是从vs到vi的最短路2用编程求最短路径问题 以下给出了用C语言编写的使用Dijkstra算法求最短路径问题的源代码:#includestdio.h#includestring.h#includemalloc.h#includestdlib.htypedef char VertexType4;typedef char InfoPtr;typedef int VRType;#define INFINITY 10000#define MaxSize 50typedef int PathMatrixMaxSizeMaxSize;typedef int ShortPathLengthMaxSize;typedef int PathMatrixMaxSizeMaxSize;typedef int ShortPathLengthMaxSize;typedef structVRType adj;InfoPtr *info;ArcNode,AdjMatrixMaxSizeMaxSize;typedef structVertexType vexMaxSize;AdjMatrix arc;int vexnum,arcnum;MGraph;typedef structint row;int col;int weight;GNode;void CreateGraph(MGraph *N,GNode *value,int vnum,int arcnum,VertexType *ch)int i,j,k;N-vexnum=vnum;N-arcnum=arcnum;for(i=0;ivexi,chi);for(i=0;ivexnum;i+)for(j=0;jvexnum;j+)N-arcij.adj=INFINITY;N-=NULL;for(k=0;karcij.adj=valuek.weight;void DisplayGraph(MGraph N)int i,j;printf(有向网具有%d个顶点%d条弧,顶点依次是:,N.vexnum,N.arcnum);for(i=0;iN.vexnum;+i)printf(%s ,N.vexi);printf(n有向网N的:n);printf(序号i=);for(i=0;iN.vexnum;i+)printf(%8d,i);printf(n);for(i=0;iN.vexnum;i+)printf(%8d,i);for(j=0;jN.vexnum;j+)printf(%8d,N.arcij.adj);printf(n);void Dijkstra(MGraph N,int v0,PathMatrix path,ShortPathLength dist)int v,w,i,k,min;int finalMaxSize;for(v=0;vN.vexnum;v+)finalv=0;distv=N.arcv0v.adj;for(w=0;wN.vexnum;w+)pathvw=0;if(distvINFINITY)pathvv0=1;pathvv=1;distv0=0;finalv0=1;for(i=1;iN.vexnum;i+)min=INFINITY;for(w=0;wN.vexnum;w+)if(!finalw&distwmin)v=w;min=distw;finalv=1;for(w=0;wN.vexnum;w+)if(!finalw&minINFINITY&N.arcvw.adjINFINITY&(min+N.arcvw.adjdistw)distw=min+N.arcvw.adj;for(k=0;kN.vexnum;k+)pathwk=pathvk;pathww=1;void main()int i,vnum=6,arcnum=9;MGraph N;GNode value=0,1,30,0,2,60,0,4,150,0,5,40,1,2,40,1,3,100,2,3,50,3,4,30,4,5,10;VertexType ch=v0,v1,v2,v3,v4,v5;PathMatrix path;ShortPathLength dist;CreateGraph(&N,value,vnum,arcnum,ch);DisplayGraph(N);Dijkstra(N,0,path,dist);for(i=0;iN.vexnum;i+)if(i!=0)printf(%s-%s:%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑垃圾处理投资建设项目立项报告
- 阳泉市人民医院喉部良性肿瘤切除术技术准入考核
- 晋城市中医院儿科质量控制指标考核
- 鄂尔多斯市人民医院面弓转移技术考核
- 呼和浩特市人民医院患者告知与沟通考核
- 2025年中国外科抗粘连产品项目投资计划书
- 合同范本之所有权转让合同8篇
- 晋城市人民医院输尿管狭窄合并结石处理考核
- 大同市中医院免疫组化技术考核
- 房屋屋顶维修合同范本5篇
- 海上卫勤课件
- 2025年云南交投集团下属保山管理处收费员等岗位招聘(62人)备考考试题库附答案解析
- 工伤预防安全知识培训课件
- 冲压车间职工管理制度
- 2025河北唐山国控集团有限公司招聘工作人员32人考试参考题库及答案解析
- 2025-2026学年(人教版)初中数学七年级上册第一次月考 (1-2章)(含答案)
- 2025年公安部交管局三力测试题库及答案
- 仁爱英语七年级上半期考试试题(含答案)
- 英语专业导论(第2版)PPT完整全套教学课件
- 《国际文化贸易》ppt课件
- 小升初个人简历表
评论
0/150
提交评论