永发信息网

关于PRIM算法求最小生成树的问题(c语言版)

答案:1  悬赏:40  手机版
解决时间 2021-02-04 12:24
关于PRIM算法求最小生成树的问题(c语言版)
最佳答案


#include
#include
#define N 100

int p[N], key[N], tb[N][N];

void prim(int v, int n)
{
int i, j;
int min;

for (i = 1; i <= n; i++)
{
p[i] = v;
key[i] = tb[v][i];
}
key[v] = 0;
for (i = 2; i <= n; i++)
{
min = INT_MAX;
for (j = 1; j <= n; j++)
if (key[j] > 0 && key[j] < min)
{
v = j;
min = key[j];
}
printf("%d%d ", p[v], v);
key[v] = 0;
for (j = 1; j <= n; j++)
if (tb[v][j] < key[j])
p[j] = v, key[j] = tb[v][j];
}
}

int main()
{
int n, m;
int i, j;
int u, v, w;
while (scanf("%d%d", &n, &m))
{
for(i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
tb[i][j] = INT_MAX;
}

while (m--)
{
scanf("%d%d%d", &u, &v, &w);
tb[u][v] = tb[v][u] = w;
}
prim(1, n);
printf("\n");
}
return 0;
}

要求出所有的最小生成树。。貌似有点麻烦。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
问道 金头陀再哪捉
杭州哪里有大路牌自动麻将机维修中心
到黄河十二渤海二十一路坐几路公交车?
津市老葛轮胎服务中心地址在什么地方,想过去
IT行业学什么好,简单,工资又高。
河北省执业药师变更注册需要哪些东西.
焦·娇美人专业减肥武义总店怎么去啊,有知道
我三星手机,安卓系统,也有NFC功能,也有芯
引风吹火的意思是什么啊?知道的请说下!
左手定则即可以判断通电导体的受力方向,又可
小胖擀面皮在什么地方啊,我要过去处理事情
新大话西游2未转玩家能带多少钱?
世界最伟大的革命,往往由现实和预期之间最细
圆厅别墅(VillaRotonda)的设计者是:[2007-0
晌午的意思是什么啊?知道的请说下!
推荐资讯
断谊的意思是什么啊?知道的请说下!
魅力女人这个地址在什么地方,我要处理点事
具有较强传染性的是A.热疮B.火带疮C.蛇串疮D.
器乐培训考级教学点地址在哪,我要去那里办事
王者荣耀中带暴击的符文有什么用
国嘉南苑怎么去啊,有知道地址的么
缘山泉祥记水店地址在哪,我要去那里办事
一甲子是多久?
人中电死亡原理是什么?
西乡有拉磁环的厂招工吗
江雅瑜伽地址好找么,我有些事要过去
拘拿儿的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?