Day 6 Program
Day 6 Program
Question 6.1
Code:
#include <stdio.h>
#include <stdbool.h>
int graph[MAX_NODES][MAX_NODES];
int distance[MAX_NODES];
bool visited[MAX_NODES];
int parent[MAX_NODES];
int minDistance(int n) {
int minIndex = -1, minDist = INF;
for (int i = 0; i < n; i++) {
if (!visited[i] && distance[i] < minDist) {
minDist = distance[i];
minIndex = i;
}
}
return minIndex;
}
distance[start] = 0;
int main() {
int n = 5; // number of vertices
int start = 0; // starting vertex
// adjacency matrix of the graph
int g3[5][5] = {{0, 10, 0, 5, 0},
{0, 0, 1, 2, 0},
{0, 0, 0, 0, 4},
{0, 3, 9, 0, 2},
{7, 0, 6, 0, 0}};
// copy the graph to the global variable
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
graph[i][j] = g3[i][j];
}
}
dijkstra(start, n);
printResult(start, n);
return 0;
}
Output: