问答题 设图用邻接表表示,写出求从指定顶点到其余各顶点的最短路径的Dijksua算法。要求:(1)对所用的辅助数据结构,邻接表结构给以必要的说明;(6分)(2)写出算法描述。(C,类Pascal,类C均可)(14分)【南京理工大学1996四、1(20分)】
【正确答案】正确答案:求单源点最短路径问题,存储结构用邻接表表示,这里只给出核心语句。 p=g[v0].firstarc;s[v0]=1; //s数组存顶点是否找到最短路径的信息 while(p) //顶点的最短路径赋初值 (dist[p一>adjvex]=p一>weight ; P=p一>next;}//dist数组存放最短路径 for(i=1;iadjvex; if(S[j]==0&&dist[j]>dist[u]+p一>weight) dist[j]=dist[u]+p一>weight; p=p一>next ; }//while }//for(i=i;i
【答案解析】