#define V
int findmin(int graph[V][V], int visited[V], int ptr){
int min = 10000;
int pos = ptr;
for(int i=0; i
min = graph[ptr][i];
pos = i;
}
}
return pos;
}
void display(int graph[V][V], int visited[V]){
printf("Display \n");
for(int i=0; i
printf("%d ", graph[i][j]);
}
printf("\n");
}
printf("Visited ");
for(int i=0; i
}
printf("\n");
}
void trace(int graph[V][V], int visited[V], int ptr, int dest){
display(graph, visited);
int pos = findmin(graph, visited, ptr);
printf("Traversed node = %d\n", pos);
visited[pos] = 1;
ptr = pos;
if(ptr == dest){
return;
}
trace(graph, visited, ptr, dest);
}
int main(){
// int graph[V][V] = {{0, 4, -1, -1, 8}, {0, 0, 8, -1, 11}, {0, 0, 0, 2, -1},{0,0,0,0,7}, {0,0,0,0,0}};
int graph[V][V] = {{0,2,6,-1,-1,-1,-1},{-1,0,-1,5,-1,-1,-1},{-1,-1,0,8,-1,-1,-1},{-1,-1,-1,0,10,15,-1},{-1,-1,-1,-1,0,6,2},{-1,-1,-1,-1,-1,0,6},{-1,-1,-1,-1,-1,-1,0}};
int visited[V] = {0, 0, 0, 0, 0, 0, 0};
int st = 0;
int dest =
visited[st] = 1;
trace(graph, visited, st, dest);
return 0;
}