数据结构最短路径算法例题求最短路径

在带权有向图G中给定一个源点v,求从v到G中的其余各顶点的最短路径问题叫做单源点的最短路径问题。

在常用的单源点最短路径算法中迪杰斯特拉算法是最为常用的┅种,是一种按照路径长度递增的次序产生最短路径的算法

可将迪杰斯特拉算法描述如下:

在本题中,读入一个有向图的带权邻接矩阵(即数组表示)建立有向图并按照以上描述中的算法求出源点至每一个其它顶点的最短路径长度。

输入的第一行包含2个正整数n和s表示圖中共有n个顶点,且源点为s其中n不超过50,s小于n

以后的n行中每行有n个用空格隔开的整数。对于第i行的第j个整数如果大于0,则表示第i个頂点有指向第j个顶点的有向边且权值为对应的整数值;如果这个整数为0,则表示没有i指向j的有向边当i和j相等的时候,保证对应的整数為0

只有一行,共有n-1个整数表示源点至其它每一个顶点的最短路径长度。如果不存在从源点至相应顶点的路径输出-1。

在本题中需要按照题目描述中的算法完成迪杰斯特拉算法,并在计算最短路径的过程中将每个顶点是否可达记录下来直到求出每个可达顶点的最短路徑之后,算法才能够结束 

迪杰斯特拉算法的特点是按照路径长度递增的顺序,依次添加下一条长度最短的边从而不断构造出相应顶点嘚最短路径。 

另外需要注意的是在本题中为了更方便的表示顶点间的不可达状态,可以使用一个十分大的值作为标记


  
}

格式:DOC ? 页数:10页 ? 上传日期: 19:35:31 ? 浏览次数:30 ? ? 1000积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

}

我要回帖

更多关于 数据结构最短路径算法例题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信