diff --git a/floyd warshall.cpp b/floyd warshall.cpp new file mode 100644 index 00000000..d0b6c91e --- /dev/null +++ b/floyd warshall.cpp @@ -0,0 +1,51 @@ +#include +using namespace std; +#define V 4 +#define INF 99999 + +void printSolution(int dist[][V]); +void floydWarshall (int graph[][V]) +{ + int dist[V][V], i, j, k; + for (i = 0; i < V; i++) + for (j = 0; j < V; j++) + dist[i][j] = graph[i][j]; + for (k = 0; k < V; k++) + { + for (i = 0; i < V; i++) + { + for (j = 0; j < V; j++) + { + if (dist[i][k] + dist[k][j] < dist[i][j]) + dist[i][j] = dist[i][k] + dist[k][j]; + } + } + } + printSolution(dist); +} +void printSolution(int dist[][V]) +{ + cout<<"The following matrix shows the shortest distances" + " between every pair of vertices \n"; + for (int i = 0; i < V; i++) + { + for (int j = 0; j < V; j++) + { + if (dist[i][j] == INF) + cout<<"INF"<<" "; + else + cout<