This is the execution of Kruskal's Algorithm in C Programming Language.This calculation is specifically in light of the nonexclusive MST (Minimum Spanning Tree) calculation. Kruskal's calculation is an eager calculation in chart hypothesis that finds a base spreading over tree for a joined weighted diagram. It finds a subset of the edges that structures a tree that incorporates each vertex, where the aggregate weight of the considerable number of edges in the tree is minimized.

Pseudocode For The Kruskal's Algorithm

KRUSKAL(V, E, w)

A ← { } ▷ Set A will at last contains the edges of the MST

for every vertex v in V

do MAKE-SET(v)

sort E into non diminishing request by weight w

for every (u, v) taken from the sorted rundown

do if FIND-SET(u) = FIND-SET(v)

at that point A ← A ∪ {(u, v)}

UNION(u, v)

return A

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

int i,j,k,a,b,u,v,n,ne=1;

int min,mincost=0,cost[9][9],parent[9];

int find(int);

int uni(int,int);

void principle()

{

clrscr();

printf("\n\tImplementation of Kruskal's Algorithm\n");

printf("\nEnter the no. of vertices:");

scanf("%d",&n);

printf("\nEnter the expense nearness matrix:\n");

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;

}

}

printf("The edges of Minimum Cost Spanning Tree are\n");

while(ne < n)

{

for(i=1,min=999;i<=n;i++)

{

for(j=1;j <= n;j++)

{

if(cost[i][j] < min)

{

min=cost[i][j];

a=u=i;

b=v=j;

}

}

}

u=find(u);

v=find(v);

if(uni(u,v))

{

printf("%d edge (%d,%d) =%d\n",ne++,a,b,min);

mincost +=min;

}

cost[a][b]=cost[b][a]=999;

}

printf("\n\tMinimum cost = %d\n",mincost);

getch();

}

int find(int i)

{

while(parent[i])

i=parent[i];

return i;

}

int uni(int i,int j)

{

if(i!=j)

{

parent[j]=i;

return 1;

}

retur
 
Top