Wednesday 20 August 2014

Filled Under:

C Program to implement Prims algorithm

Share

Prim’s algorithm is a greedy algorithm that finds a minimum spanning tree for a connected weighted undirected graph. This means it finds a subset of the edges that forms a tree that includes every vertex, where the total weight of all the edges in the tree is minimized.Here we provide a C program which finds a minimum spanning tree for a connected weighted graph.

Example of C Program to implement Prims algorithm

#include<stdio.h>
#include<conio.h>
int a,b,u,v,n,i,j,ne=1;
int visited[10]={0},min,mincost=0,cost[10][10];

void main()
{
  clrscr();
  printf("n Enter the number of nodes: ");
  scanf("%d",&n);
  printf("n Enter the adjacency matrix: sn");
  for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
  {
   scanf("%d",&cost[i][j]);
   if(cost[i][j]==0)
   cost[i][j]=999;
  }
  visited[1]=1;
  printf("n");
  while(ne<n)
  {
    for(i=1,min=999;i<=n;i++)
    for(j=1;j<=n;j++)
    if(cost[i][j]<min)
    if(visited[i]!=0)
    {
     min=cost[i][j];
     a=u=i;
     b=v=j;
    }
    if(visited[u]==0 || visited[v]==0)
    {
     printf("n Edge %d:(%d %d) cost:%d",ne++,a,b,min);
     mincost+=min;
     visited[b]=1;
    }
    cost[a][b]=cost[b][a]=999;
  }
  printf("n Minimun cost=%d",mincost);
  getch();
}
Output