#include<stdio.h> #define V 7 int findmin(int graph[V][V], int visited[V], int ptr){ int min = 10000; int pos = ptr; for(int i=0; i<V; i++){ if(graph[ptr][i] < min && graph[ptr][i] > 0 && visited[i] == 0){ min = graph[ptr][i]; pos = i; } } return pos; } void display(int graph[V][V], int visited[V]){ for(int i=0; i<V; i++){ for(int j=0; j<V; j++){ } } for(int i=0; i<V; i++){ } } void trace(int graph[V][V], int visited[V], int ptr, int dest){ display(graph, visited); int pos = findmin(graph, visited, ptr); 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 = 6; visited[st] = 1; trace(graph, visited, st, dest); return 0; }