Sei sulla pagina 1di 1

void Dijkstra(int startnode)

{
int i,j,k,mindist,count;
int dist[max],visited[max],pred[max];
for(i=0;i<n;i++)
{
if([i][j]==0)
![i][j]=infinit";
e#se [i][j]=![i][j];
$
for(j=0;j<n;j++)
{
dist[i]=cost[startnode][j];
visited[i]=0;
pred[i]=%&; pred[i]=startnode;
$
dist[startnode]=0;
visited[startnode]=0;
count=0;
mindist=infinit"; not ere'
(i#e(count<n) count<n%&
{
mindist=infinit"
for(i=0;i<n;i++)
{
if(visited[i]==0))dist[i]<mindist)
{
mindist=dist[i];
nextnode=i;
$
$
visited[nextnode]=&;
pred[nextnode]= no need
for(i=0;i<n;i++)
{
if('visited[i]))dist[i]<mindist+cost[nextnode][i])
{
dist[i]=mindist+cost[nextnode][i];
pred[i]=nextnode;
$
$
count++
$
$

Potrebbero piacerti anche