Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
25 views3 pages

Exp 1 Kruskals Algorithm

The document presents a C/C++ program that implements Kruskal's algorithm to find the Minimum Cost Spanning Tree of a connected undirected graph. It includes user input for the number of vertices and the cost adjacency matrix, and outputs the edges of the Minimum Cost Spanning Tree along with the total minimum cost. Key functions include 'find' for locating the parent of a vertex and 'uni' for union operations in the disjoint set structure.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views3 pages

Exp 1 Kruskals Algorithm

The document presents a C/C++ program that implements Kruskal's algorithm to find the Minimum Cost Spanning Tree of a connected undirected graph. It includes user input for the number of vertices and the cost adjacency matrix, and outputs the edges of the Minimum Cost Spanning Tree along with the total minimum cost. Key functions include 'find' for locating the parent of a vertex and 'uni' for union operations in the disjoint set structure.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Exp-1

Design and implement C/C++ Program to find Minimum Cost Spanning Tree of a given connected
undirected graph using Kruskal's algorithm

#include<stdio.h>

#include<stdlib.h>

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

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

int find(int);

int uni(int,int);

void main()

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

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

scanf("%d",&n);

printf("\nEnter the cost adjacency 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("\nThe edges of Minimum Cost Spanning Tree are\n\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("\n%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;

return 0;

You might also like