본문내용
t P[][VERTEX])
{
if(P[q - 1][r - 1] != 0)
{
path(q, P[q - 1][r - 1], P);
printf("v%d - ", P[q - 1][r - 1]);
path(P[q - 1][r - 1], r, P);
}
}
int minimum(int num1, int num2)
{
if(num1 > num2)
return num2;
else
return num1;
}
/* 최단경로를 구하는 플로이드 알고리즘2 */
void floydII(int n, const int W[][VERTEX], int D[][VERTEX], int P[][VERTEX])
{
int i, j, k;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
P[i][j] = 0;
memcpy(D, W, sizeof(W) * VERTEX * VERTEX);
for(k = 0; k < n; k++)
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(D[i][k] + D[k][j] < D[i][j])
{
P[i][j] = k + 1;
D[i][j] = D[i][k] + D[k][j];
}
}
{
if(P[q - 1][r - 1] != 0)
{
path(q, P[q - 1][r - 1], P);
printf("v%d - ", P[q - 1][r - 1]);
path(P[q - 1][r - 1], r, P);
}
}
int minimum(int num1, int num2)
{
if(num1 > num2)
return num2;
else
return num1;
}
/* 최단경로를 구하는 플로이드 알고리즘2 */
void floydII(int n, const int W[][VERTEX], int D[][VERTEX], int P[][VERTEX])
{
int i, j, k;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
P[i][j] = 0;
memcpy(D, W, sizeof(W) * VERTEX * VERTEX);
for(k = 0; k < n; k++)
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(D[i][k] + D[k][j] < D[i][j])
{
P[i][j] = k + 1;
D[i][j] = D[i][k] + D[k][j];
}
}
소개글