1、问题
给定一个带权有向图G与源点v,求从v到G中其他顶点的最短路径,并限定各边上的权值大于或等于0.
对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310184234908.png)
2、解析
设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组:
①第1组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径v,…,u,就将u加入到集合S中,直到全部顶点都加入到S中,算法就结束了)。
②第2组其余未求出最短路径的顶点集合(用U表示)。
3、设计
void Dijkstra(int n)
{
int i,j,pos;
for(i=1;i<=n;i++)