#include
class dijkstra
{
private:
int graph[15][15];
int set[15],predecessor[15],mark[15],pathestimate[15];
int source;
int num_of_vertices;
public:
int minimum();
void read();
void initialize();
void printpath(int);
void algorithm();
void output();
};
void dijkstra::read()
{
cout<<"Masukkan jumlah node : "; cin>>num_of_vertices;
while(num_of_vertices<=0) { cout<<"\Angka yang anda masukkan salah,masukkan lagi : "; cin>>num_of_vertices;
}
cout<<"Menentukan path :\n"; for(int i=1;i<=num_of_vertices;i++) { cout<<"\nTentukan path untuk node "<< j="1;j<=">>graph[i][j];
while(graph[i][j]<0)>>graph[i][j];
}
}
}
cout<<"\nTentukan source node : "; cin>>source;
}
void dijkstra::initialize()
{
for(int i=1;i<=num_of_vertices;i++) { mark[i]=0; pathestimate[i]=999; predecessor[i]=0; } pathestimate[source]=0; } void dijkstra::algorithm() { initialize(); int count=0; int i; int u; while(count
{
if(mark[i]!=1)
{
if(pathestimate[i]>pathestimate[u]+graph[u][i])
{
pathestimate[i]=pathestimate[u]+graph[u][i];
predecessor[i]=u;
} }}} }}
void dijkstra::printpath(int i)
{
cout<
{
min=pathestimate[i];
t=i;
}}}
return t;
}
void main()
{
dijkstra s;
s.read();
s.algorithm();
s.output();
}
Selamat mencoba...!!!
Tidak ada komentar:
Posting Komentar