Dijkstra's Algorithm




SOURCE CODE


#include”iostream.h”
#include”conio.h”
#include”iomanip.h”
#define MAX 10

class dijkstra
{
private:
int cost[MAX][MAX],d[MAX],p[MAX],visited[MAX],n;
public:
void readmatrix();
void shortpath(int);
void display(int);
};

void dijkstra::readmatrix()
{
int i,j;
cout < < "Enter The Number Of Vertices : "; cin > > n;
cout < < "Enter The Cost Matrix Of The Graph: "; for(i=1;i < =n;i++) for(j=1;j < =n;j++) cin > > cost[i][j];
}
void dijkstra::shortpath(int src)
{
int i,j,min,u,v;
for(i=1;i < =n;i++) { d[i]=cost[src][i]; visited[i]=0; p[i]=src; } visited[src]=1; for(i=1;i < =n;i++) { min=999; u=0; for(j=1;j < =n;j++) { if((!visited[j])&&(d[j]!=0)) if(d[j] < min="d[j];" u="j;" v="1;v" i="1;i" i="="src)" k="i;" k="p[k];"> > source;
dij.shortpath(source);
dij.display(source);
getch();
return 0;
}