You are on page 1of 5

EX NO:

DATE: PRIMS AND KRUSKAL ALGORITHM

Implement Prims and Kruskal algorithm.


AIM:

ALGORITHM:

ROLL NO:2127220801007 PAGE NO:


PROGRAM:
PRIMS ALGORITHM:
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
#define INF 9999999
#define V 5
int G[V][V] = {
{ 0, 2, 0, 6, 0 },
{ 2, 0, 3, 8, 5 },
{ 0, 3, 0, 0, 7 },
{ 6, 8, 0, 0, 9 },
{ 0, 5, 7, 9, 0 }
};
int main() {
int no_edge;
int selected[V];
memset(selected, false, sizeof(selected));
no_edge = 0;
selected[0] = true;
int x;
int y;
printf("Edge : Weight\n");

ROLL NO:2127220801007 PAGE NO:


while (no_edge < V - 1) {
int min = INF;
x = 0;
y = 0;
for (int i = 0; i < V; i++) {
if (selected[i]) {
for (int j = 0; j < V; j++) {
if (!selected[j] && G[i][j])
{
if (min > G[i][j]) {
min = G[i][j];
x = i;
y = j;
} }
} }
}
printf("%d - %d : %d\n", x, y, G[x][y]);
selected[y] = true; no_edge++;
}
return 0;
}
KRUSKAL ALGORITHM:
#include <stdio.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 main()
{
printf("Kruskal's algorithm in C\n");
printf("========================\n");
printf("Enter 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;
}
}

ROLL NO:2127220801007 PAGE NO:


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("\nMinimum cost = %d\n", mincost);
}
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;
}

ROLL NO:2127220801007 PAGE NO:


SAMPLE INPUT AND OUTPUT:

KRUSKAL :

RESULT:

ROLL NO:2127220801007 PAGE NO:

You might also like