关于用dijkstra算法 利用C语言计算最短路径出现的问题~

Dijkstra.obj:errorLNK2001:unresolvedexternalsymbol_dijkstraDebug/Dijkstra.exe:fataler... Dijkstra.obj : error LNK2001: unresolved external symbol _dijkstraDebug/Dijkstra.exe : fatal error LNK1120: 1 unresolved externals
主程序如下
int main()
{
void Dijkstra(float Time[][maxnod],int nod_mun ,int v_origin,int v_destination );

int m,n;
printf("请输入您想要查询路径的起点序号(以回车确定): ");
scanf("%d",&m);
printf("请输入您想要查询路径的终点序号(以回车确定): ");
scanf("%d",&n);
while(m!=0&&n!=0)
{
if(m>0&&m<=maxnod&&n>0&&n<=maxnod)
{
dijkstra(Time,maxnod ,m,n);
printf("请输入您指定的起点序号(以回车确定): ");
scanf("%d",&m);
}
else
{
printf("\n您的输入错误,请重新输入!:");
scanf("%d",&m);
}
}
return 0;
}

void Dijkstra(float Time[][maxnod],int nod_mun ,int v_origin,int v_destination )

{
int U[maxnod],S[maxnod],i,j,k,min;
for(i=0;i<nod_mun;i++)
{
U[i]=1;
S[i]=0;
}
U[v_origin]=0;
S[v_origin]=1;
for(i=0;i<nod_mun;i++)
short_dis[i]=Time[v_origin][i];
for(i=0;i<nod_mun;i++)
{
min=nod_mun+10;
short_dis[min]=inf;
for(j=0;j<nod_mun;j++)
if(U[j]==1&&short_dis[j]<short_dis[min])
min=j;
S[min]=1;
U[min]=0;

for(j=1;j<nod_mun;j++)
if(U[j]=1&&short_dis[j]>short_dis[min]+Time[min][j])
{
short_dis[j]=short_dis[min]+Time[min][j];
pro_nod[j]=min;
}

}
printf("起点%d到终点%d的最短路径如下:\n\n",v_origin+1,v_destination+1);
if (i=v_destination&&S[i]==1)
{
k=i;
printf(" %d 到 %d 的最短路径为:",v_origin+1,i+1);
while(k!=v_origin)
{
printf("%d<-%d",k+1,v_origin+1);

}
printf(" \t最短路径长度为 : %4.1f\n\n",short_dis[i]);

}
else
printf("%d<-%d \t不存在路径\n",i+1,v_origin+1);

}
以上是主程序,变量已在前面进行了全局定义。。还有路径距离矩阵。
问题解决了,但程序设计出问题了。。。找不到最短路径。。。
展开
 我来答
百度网友a5eb3e1
2013-11-22 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2664万
展开全部
dijkstra(Time,maxnod ,m,n);
改为
Dijkstra(Time,maxnod ,m,n);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式