0% found this document useful (0 votes)
4 views

ada_labprogram1

Uploaded by

Venu
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)
4 views

ada_labprogram1

Uploaded by

Venu
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/ 2

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>
int i, j, k, a, b, u, v, n, ne=1;
int min, mincost=0, cost[9][9], parent[9];
int find(int);
int union(int,int);
void main()
{
printf("\nEnter the no. of vertices:");
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(union(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);
}
int find(int i)
{
while(parent[i])
i=parent[i];
return i;
}

int union(int i,int j)


{
if(i!=j)
{
parent[j]=i;
return 1;
}
return 0;
}

OUTPUT

Enter the no. of vertices: 4

Enter the cost adjacency matrix

0 3 2 1
3 0 1 3
2 1 0 2
1 3 2 0

The edges of Minimum Cost Spanning Tree are

1 edge (1,4) =1

2 edge (2,3) =1

3 edge (1,3) =2

Minimum cost = 4

You might also like