ada3a-3b
3a.#include <stdio.h>
#include <limits.h> #define V 4
void floydWarshall(int graph[V][V]) {
int dist[V][V]; for (int i = 0; i < V; i++) for (int j = 0; j < V; j++) dist[i][j] = graph[i][j]; for (int k = 0; k < V; k++) for (int i = 0; i < V; i++) for (int j = 0; j < V; j++)
if (dist[i][k] != INT_MAX && dist[k][j] != INT_MAX && dist[i][k] + dist[k][j] < dist[i][j])
dist[i][j] = dist[i][k] + dist[k][j];
printf("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] == INT_MAX) printf("INF\t"); else
printf("%d\t", dist[i][j]);
}
printf("\n");
}
}
int main() {
int graph[V][V] = {{0, INT_MAX, 3, INT_MAX},
{2, 0, INT_MAX, INT_MAX},
{INT_MAX, 7, 0, 1}, {6, INT_MAX, INT_MAX, 0}}; floydWarshall(graph);
return 0;
}
3b.
include <stdio.h> int n,a[10][10],p[10][10];
void path() {
int i,j,k; for(i=0;i<n;i++) for(j=0;j<n;j++)
p[i][j]=a[i][j];
for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) if(p[i][k]==1&&p[k][j]==1) p[i][j]=1;
}
void main()
{
int i,j;
printf("Enter the number of nodes:"); scanf("%d",&n); printf("\nEnter the adjacency matrix:\n");
for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); path();
printf("\nThe path matrix is showm below\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++) printf("%d ",p[i][j]);
printf("\n");
}
}