-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprim.c
More file actions
34 lines (30 loc) · 719 Bytes
/
Copy pathprim.c
File metadata and controls
34 lines (30 loc) · 719 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <limits.h>
#define V 9
int min_key(int key[], int visited[]){
int min = INT_MAX, min_index;
int v;
for(v=0;v<V;v++){
if(visited[v]==0 && key[v]<min)
min = key[v], min_index = v;
}
return min_index;
}
void prim(int graph[V][V]){
int parent[V];
int key[V];
int visited[V];
int i;
for(i=0;i<V;i++)
key[i] = INT_MAX, visited[i] = 0;
key[0] = 0;
parent[0] = -1;
for(i=0;i<V-1;i++){
int u = min_key(key, visited);
visited[u] = 1;
int v;
for(v=0;v<V;v++)
if(graph[u][v] && visited[v]==0 && graph[u][v]<key[v])
parent[v] = u, key[v] = graph[u][v];
}
}