多题目

迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

#include<iostream>

using namespace std;

int main()

int edgs;

int points;

int dis[10];

int flag[10];

int infinity=9999999;

cin>>points>>edgs;

int edg[10][10];

for(inti-1;i<=points;i++)//初始化

for (int j=l;j<=points;j++)

if(i=-j)

edg[i][j]-

else

edg[i][j]- ②

int pointl,point2,quanzhi;

for(i-l;i<=edgs;i++)

cin>>pointl>>point2>>quanzhi;

edg[point1][point2]=

for(i=l;i<=points;i++)

dis[i]-edg[1][i];

for(i=l;i<=points;i++)

flag[i]-0;

flag[1]-1;

int min ,u;

for(i=l;i<=points-l;i++){//源点到源点不用比较,因次总的次数少一次

min-infinity;

for (int j=l;j<points;j++)

if(flag[]]==0&&dis[j]<min){//核心思想:依次比较出商源点最近的点min)

u=j/

flag[u]-1;

for (int v=l;v<=points;v++){//找出离源点最近的点后更新 dis 里面的源点到各个点的值是否最小if (edglu][v]<infinity)

if (dis[v]>dis[u]+edg[u][v])

dis[v]=

for(i-l;i<=points;i++)

cout<<dis[i]<<" ";

cout<<endl;


第1题 单选

1处应填

A.

 infinity

B.

dis[j]

C.

0

D.

1

第2题 单选

2处应填

A.

infinity

B.

dis[j]

C.

0

D.

1

第3题 单选

3处应填

A.

quanzhi

B.

0

C.

 inf

D.

1

第4题 单选

4处应填

A.

j

B.

 dis[j]

C.

fag[j]

D.

i

第5题 单选

5处应填

A.

 dis[u]

B.

edg[ u][v]

C.

 dis[u]+edg[u][v]

D.

 infinity

发表评论

登录 后再回复