急求KRUSKAL算法求最小生成树过程演示(一)主要内容以合适方便的方式输入一个边带权值的无向图,采用合适的存储结构存储该无向图. 然后根据KRUSKAL算法求该无向图的最小生成树并输出.(
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 14:28:19
急求KRUSKAL算法求最小生成树过程演示(一)主要内容以合适方便的方式输入一个边带权值的无向图,采用合适的存储结构存储该无向图. 然后根据KRUSKAL算法求该无向图的最小生成树并输出.(
急求KRUSKAL算法求最小生成树过程演示
(一)主要内容
以合适方便的方式输入一个边带权值的无向图,采用合适的存储结构存储该无向图. 然后根据KRUSKAL算法求该无向图的最小生成树并输出.
(二)要求:
1、输入无向图的方式要尽量简单方便
2、要能够形象方便地观察无向图的图形结构
3、要能够形象地演示KRUSKAL算法求最小生成树的过程
4、独立完成系统的设计、编码和调试.
5、系统利用C语言实现.
6、按照课程设计规范书写课程设计报告.
各位帮忙啊
谢谢,百度名就是我的QQ
急求KRUSKAL算法求最小生成树过程演示(一)主要内容以合适方便的方式输入一个边带权值的无向图,采用合适的存储结构存储该无向图. 然后根据KRUSKAL算法求该无向图的最小生成树并输出.(
#include
#include
#include
struct road
{
int st;
int ed;
int w;
};
road all[900];
int A[30];
int cmp(const void *a,const void *b)
{
return (*(road *)a).w - (*(road *)b).w;
}
int find(int x)
{
if (x != A[x])
A[x] = find(A[x]);
return A[x];
}
int main()
{
int i,j,k,q,p,m,n,sum;
char s,e;
while (scanf("%d",&n) != EOF)
{
if (n == 0) break;
memset(A,0,sizeof(int));
for (i = 1;i