for (i = 0; I
för (j = 0; j
scanf ("% d", & a [i] [j]);
/* INITIALIZATION * /News
for (i = 0; i
v [i] = 65 + i; Omdömen
V0 = 'A', Omdömen
status [0] = '!';
dist [0] = 0;
nästa [0] = '*', Omdömen
for (i = 1, jag
{Omdömen
status [i] = '? ";
dist [i] = a [i] [0]; Omdömen
nästa [i] = v0, Omdömen
} Omdömen
/* BEHANDLING * /News
för (j = 0; j Omdömen
{Omdömen
//Katalog Tryck
printf ("\\ nVERTEX | ");
for (i = 0; i
printf ("% c \\ t ", v [i]), Omdömen
printf (" \\ n ") ;
for (i = 0; i
printf ("---------"); Omdömen
printf ("\\ nSTATUS |");
for (i = 0; i
printf ("% c \\ t", status [i]), Omdömen
printf ("\\ nDIST |");
for (i = 0; i
printf ("% d \\ t", dist [i]), Omdömen
printf ("\\ nNästa |");
for (i = 0; i
printf ("% c \\ t", nästa [i]);
/* PROCESS * /News
om (j
{Omdömen
for (i = 1; '?' i
if (status [i] ==) Review
{Omdömen
min = dist [i], Omdömen
r = i; Omdömen
bryta, Omdömen
} Omdömen
for (i = 0; i
if (status [i] == && dist [i] Omdömen
{Omdömen
min = dist [i] '?'; Omdömen
r = i;
} Omdömen
v1 = v [r], Omdömen
status [r] = '!'; Omdömen
for (i = 0; i
{Omdömen
if (status [i] == '?' && dist [i]> (dist [r] + en [r] [i])) Review
{
dist [i] = dist [r] + en [r] [i], Omdömen
nästa [i] = v1, Omdömen
} Omdömen
}
getch ();
} Omdömen
printf ("\\ n \\ n");
} Omdömen
printf (" \\ n \\ nDen kanter ingår i spaning trädet är: - \\ n \\ n ");
for (i = 1, jag
printf ("% c% c ", nästa [ ,,,0],i], 65 + i), Omdömen
printf ("\\ n \\ n ** VIKT AV MINIMAL spaning TREE IS ="),
for (i = 1, jag Omdömen < p> {Omdömen
för (j = 0; j Omdömen
{Omdömen
om (nästa [i] == v [j]) Review
{
om (i == n-1) Review
printf ("% d", en [j] [i]);
annat Omdömen
printf ("% d +", en [j] [i]), Omdömen
s = s + en [j] [i], Omdömen
bryta, Omdömen
}
} Omdömen
} Omdömen
printf ("\\ n \\ t \\ t \\ t \\ t =% d", s); Omdömen
getch ();
printf ("\\ n \\ nSHORTEST AVSTÅND FRÅN \\ n");
for (i = n-1, i> 0; Jag--) Review
{
printf ("\\ n \\ t \\ t% c ->% c =% c ->% c", v [i], v0, v [i], nästa