int distance[NODES];
int found[NODES];
int path[NODES];
int choose(int distance[],int n,int found[])
{
int i,min,minpos;
min = INF;
minpos = -1;
for(i=0;i<n;i++)
if(distance[i]<min&&!found[i]){
min = distance[i];
minpos=i;
}
return minpos;
}
void shortest_path(int start,int cost[][NODES],int disttance[],int n,int found[])
{
int i,u,w;
for(i=0;i<n;i++)
{
found[i] = FALSE;
distance[i]=cost[start][i];
}
found[start] = TRUE;
distance[start] = 0;
for(i=0;i<n-2;i++){
u=choose(distance,n,found);
found[u]=TRUE;
for(w=0;w<n;w++)
if(!found[w])
if(distance[u]+cost[u][w]<distance[w])
distance[w]=distance[u]+cost[u][w];
}
}
void main()
{
shortest_path(0,cost,distance,NODES,found);
}
형들
dijkstra 코드가 이거잖음.
여기서
시작정점이랑 마지막정점 지정어케하고.
경유노드 출력하는방법,통과한간선의 합계 어떻게 출력함요?
니가 저걸 스스로 짯으면 출력은 그냥 햇겟지
새끼 이거로는 경유노드 출력불가능하다 새로짜라