Programs: / Implementation of Dijkstra'S Algorithm
Programs: / Implementation of Dijkstra'S Algorithm
//ShortPath
int shortpath(a,n,s,t,path,dist)
int a[MAXNODE][MAXNODE],n,s,t,path[MAXNODE],*dist;
{
NODELABEL state[MAXNODE];
int i,k,min,count;
int rpath[MAXNODE];
*dist=0;
//intiliaze all Nodes as Tentative Nodes
for(i=1;i<=n;i++)
{
state[i].predecessor=0;
state[i].length=infinity;
state[i].label=TENTATIVE;
}
//Make Source Node As Permanent
state[s].predecessor=0;
state[s].length=0;
state[s].label=PERMANENT;
void main()
{
int a[MAXNODE][MAXNODE],i,j;
int path[MAXNODE];
int from,to,dist,count,n;
clrscr();
cout<<"\n\tIMPLEMENTATION OF DIJKSTRA ALGORITHM \n\n";
cout<<"\n\n ENTER NUMBER OF NODES IN THE GRAPH:";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"\n ENTER NODE "<<i<<" CONECTIVITY:";
for(j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
cout<<"ENTER FROM TO WHERE:";
cin>>from;
cin>>to;
count=shortpath(a,n,from,to,path,&dist);
if(dist)
{
cout<<"\n SHORTEST PATH IS :\t";
cout<<path[1];
for(i=2;i<=count;i++)
cout<<"->"<<path[i];
cout<<"\n THE MINIMUM DISTANCE = "<< dist<<endl;
}
else
cout<<"\n PATH DOES NOT EXIST \n";
getch();
}
OUTPUT: