using namespace std;
int main()
{
FILE *fin;
FILE *fout;
fin=fopen("dij.in","r");
fout=fopen("dij.out","w");
int size,tot=0,index;
fscanf(fin,"%d",&size);
int man[size][size];
int vis[size];
int dis[size];
int row,col,wei;
int min=0,plus=0;
for (int i=0;i
{
vis[i]=0;
dis[i]=1000;
for(int j=0;j
man[i][j]=1000;
}
int sv=0;
index=0;
dis[0]=0;
while(fscanf(fin,"%d %d %d",&row,&col,&wei) && !feof(fin))
{
man[row][col]=wei;
}
for (int i=index;tot!=size-1;i++)
{
i=index;
vis[index]=1;
min=1000;
for(int j=0;j
{
if(man[i][j]
{
min=man[i][j];
index=j;
}
}
printf("plus is: %d,min is %d\n",plus,min);
for(int j=0;j
{
if(man[i][j]<1000)
{
if(vis[j]==0 && dis[j]>man[i][j]+plus)
{
dis[j]=man[i][j]+plus;
}
}
}
plus=plus+min;
tot=tot+1;
}
for(int v=0;v
{
fprintf(fout,"%d ",dis[v]);
}
return 0;
}

No comments:
Post a Comment