Skip to content

Commit d9678db

Browse files
added prims.cpp in graph
1 parent 583d0f3 commit d9678db

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

Graph/prims.cpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#include <iostream>
2+
#define I INT_MAX
3+
using namespace std;
4+
int cost[][8]=
5+
{{I,I,I,I,I,I,I,I},
6+
{I,I,25,I,I,I,5,I},
7+
{I,25,I,12,I,I,I,10},
8+
{I,I,12,I,8,I,I,I},
9+
{I,I,I,8,I,16,I,14},
10+
{I,I,I,I,16,I,20,18},
11+
{I,5,I,I,I,20,I,I},
12+
{I,I,10,I,14,18,I,I}};
13+
int near[8]={I,I,I,I,I,I,I,I};
14+
int t[2][6];
15+
int main()
16+
{
17+
int i,j,k,u,v,n=7,min=I;
18+
19+
for(i=1;i<=n;i++)
20+
{
21+
for(j=i;j<=n;j++)
22+
{
23+
if(cost[i][j]<min)
24+
{
25+
min=cost[i][j];
26+
u=i;
27+
v=j;
28+
}
29+
}
30+
}
31+
t[0][0]=u;t[1][0]=v;
32+
near[u]=near[v]=0;
33+
34+
for(i=1;i<=n;i++)
35+
{
36+
if(near[i]!=0)
37+
{
38+
if(cost[i][u]<cost[i][v])
39+
near[i]=u;
40+
else
41+
near[i]=v;
42+
}
43+
}
44+
45+
for(i=1;i<n-1;i++)
46+
{
47+
min=I;
48+
for(j=1;j<=n;j++)
49+
{
50+
if(near[j]!=0 && cost[j][near[j]]<min)
51+
{
52+
k=j;
53+
min=cost[j][near[j]];
54+
}
55+
}
56+
t[0][i]=k;
57+
t[1][i]=near[k];
58+
near[k]=0;
59+
60+
for(j=1;j<=n;j++)
61+
{
62+
if(near[j]!=0 && cost[j][k]<cost[j][near[j]])
63+
near[j]=k;
64+
}
65+
66+
}
67+
68+
for(i=0;i<n-1;i++)
69+
{
70+
cout<<"("<<t[0][i]<<","<<t[1][i]<<")"<<endl;
71+
}
72+
73+
}

0 commit comments

Comments
 (0)