Ada Lab
Ada Lab
int find(int v)
while (p[v])
v = p[v];
return v;
p[j] = i;
void kruskal(int n)
min = INF;
if (i == j) continue;
u = find(i);
v = find(j);
if (u != v)
{
res1 = i;
res2 = j;
min = c[i][j];
[1] = res1;
t[k][2] = res2;
int main()
int i, j, n;
p[i] = 0;
kruskal(n);
return 0;
}
OUTPUT
data: 1 3 4 6 2
17693
5 2 8 99 45
1 44 66 33 6
12 4 3 2 0
2 -> 1
1 -> 5
3 -> 2
1 -> 4
2. Design and implement C/C++ Program to find Minimum Cost Spanning Tree of a given connected
undirected graph using Prim’s algorithm.
#include<stdio.h>
int v[10],i,j,sum=0,ver[10],d[10],min,u;
ver[i]=s;
d[i]=c[s][i];
v[i]=0;
v[s]=1;
min=INF;
min=d[j];
u=j;
v[u]=1;
sum=sum+d[u];
d[j]=c[u][j];
ver[j]=u;
}
return sum;
void main()
int c[10][10],i,j,res,s,n;
printf("\nEnter n value:");
scanf("%d",&n);
scanf("%d",&c[i][j]);
scanf("%d",&s);
res=prim(c,n,s);
printf("\nCost=%d",res);
getch();
OUTPUT
Enter n value:4
4521
7592
1769
0285
4 -> 1 sum=0
4 -> 2 sum=2
1 -> 3 sum=4
Cost=4
4. Design and implement C/C++ Program to find shortest paths from a given vertex in a
weighted connected graph to other vertices using Dijkstra’s algorithm.
#include<stdio.h>
int v[10],min,u,i,j;
d[i]=c[s][i];
v[i]=0;
v[s]=1;
min=INF;
min=d[j];
u=j;
v[u]=1;
+c[u][j];
int main()
int c[10][10],d[10],i,j,s,sum,n;
printf("\nEnter n value:");
scanf("%d",&n);
scanf("%d",&c[i][j]);
scanf("%d",&s);
dijkstra(c,n,s,d);
return 0;
OUTPUT
Enter n value:4
999 87 56 45
1 0 999 678
#include<stdio.h>
#include<conio.h>
int temp[10],k=0;
int i,j;
if(id[i]==0)
id[i]=-1;
temp[++k]=i;
id[j]--;
i=0;
void main()
int a[10][10],id[10],n,i,j;
scanf("%d",&n);
id[i]=0;
scanf("%d",&a[i][j]);
if(a[i][j]==1) id[j]+
+;
sort(a,id,n);
if(k!=n)
else
printf("%d ",temp[i]);
getch();
OUTPUT
****************************************OUTPU1***********************************
*****
001100
000110
000101
000001
000001
000000
Topological ordering is: 1 2 3 4 5 6
****************************************OUTPU2***********************************
*****
1432
5421
5342
4123
#include<stdio.h>
int w[10],p[10],n;
b)
return a>b?a:b;
return max(knap(i+1,m),knap(i+1,m-w[i])+p[i]);
int main()
int m,i,max_profit;
scanf("%d",&n);
scanf("%d",&m);
scanf("%d %d",&p[i],&w[i]);
max_profit=knap(1,m);
printf("\nMax profit=%d",max_profit);
return 0;
OUTPUT
12 3
43 5
45 2
55 3
Max profit=100