Facebook
From Amarnath, 3 Years ago, written in C.
This paste is a reply to Re: Edited Code from Ample Peccary - go back
Embed
Viewing differences between Re: Edited Code and Re: Re: Edited Code
#include
#define V 5

7

int findmin(int graph[V][V], int visited[V], int ptr){
    int min = 10000;
    int pos = ptr;
    for(int i=0; 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]){
    printf("Display \n");
    for(int i=0; i         for(int j=0; j
            printf("%d ", graph[i][j]);
        }
        printf("\n");
    }
    printf("Visited ");
    for(int i=0; i         printf("%d ", visited[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 = 3;

6;

    visited[st] = 1;
    
    trace(graph, visited, st, dest);
    return 0;
}