| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:最小生成树问题
只看楼主 加入收藏
xlj3105098
Rank: 2
等 级:论坛游民
帖 子:20
专家分:28
注 册:2011-10-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
最小生成树问题
小弟写了个简单的最小生成树程序,但是输入邻接矩阵后程序就卡死了,不知道什么原因,请各位帮忙看下。
#include<stdio.h>
#define N 1000
#define M 1<<30
int w[N][N]={0};
bool v[N] = {0};
int link[N]={0};



int main(void)
{
    int n;
    printf("输入邻接矩阵的维数:\n");
    scanf("%d",&n);
    printf("输入邻接矩阵:\n");
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            scanf("%d",&w[i][j]);
    int min = M;
    int E_count = 0;
    while(E_count < n-1)
    {
        for(int i = 0; i < n; i++)
            for(int j = i; j < n; j++)
                if((min > w[i][j]) && (!v[i]) && (!v[j]))
                {
                    min=w[i][j];
                    v[i]=true;
                    v[j]=true;
                    link[j]=i;
                    E_count++;
                }
    }
    int cost = 0;
    for(int i = 0; i < n; i++)
        cost += w[link[i]][i];
    printf("最小生成树的权和为:\n%d\n",cost);
    return 0;
}
搜索更多相关主题的帖子: 矩阵 include 
2012-05-19 13:33
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:10 
完全不对

重剑无锋,大巧不工
2012-05-19 14:16
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:10 
看B版的意思,好象又该回去读书了。

我们都在路上。。。。。
2012-05-19 14:24
xlj3105098
Rank: 2
等 级:论坛游民
帖 子:20
专家分:28
注 册:2011-10-8
收藏
得分:0 
发现了,是我自己想得太简单了!
2012-05-19 15:54
快速回复:最小生成树问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016461 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved