| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:最小生成树问题
取消只看楼主 加入收藏
xlj3105098
Rank: 2
等 级:论坛游民
帖 子:20
专家分:28
注 册:2011-10-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
最小生成树问题
小弟写了个简单的最小生成树程序,但是输入邻接矩阵后程序就卡死了,不知道什么原因,请各位帮忙看下。
#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
xlj3105098
Rank: 2
等 级:论坛游民
帖 子:20
专家分:28
注 册:2011-10-8
收藏
得分:0 
发现了,是我自己想得太简单了!
2012-05-19 15:54
快速回复:最小生成树问题
数据加载中...
 
   



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

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