~ 最小生成树有关问题

求助求助求助~ 最小生成树问题
若要在n个城市之间建设通信网络,只需要架设n-1条线路即可。如何以最低的经济代
价建设这个通信网,是一个网的最小生成树问题。
【基本要求】
(1)利用克鲁斯卡尔算法求网的最小生成树。
(2)实现教科书6.5 节中定义的抽象数据类型MFSet。以此表示构造生成树过程中的连通
分量。
(3)利用堆排序(参见教科书10.4.3节)实现选择权值最小的边。
(4)以文本形式输出生成树中各条边以及他们的权值。
【实现提示】
通信线路一旦建立,必然是双向的。因此,构造最小生成树的网一定是无向网。设图的
顶点数不超过30 个,并为简单起见,网中边的权值设成小于100的整数,可利用C++语言
提供的随机数函数产生。
图的存储结构的选取应和所作操作相适应。为了便于选择权值最小的边,此题的存储结
构既不选用邻接矩阵的数组表示法,也不选用邻接表,而是以存储边(带权)的一维数组表示
图。
C++实现!!

------解决方案--------------------
kruska算法
以存储边(带权)的一维数组表示图:
struct ed
{
int u; //起始点
int v; //终结点
int w; //权重
};
参考:
http://zhidao.baidu.com/question/222120267.html?fr=qrl&index=4
------解决方案--------------------
大牛,遇到这种学术性的东西我就搞不定了。。
------解决方案--------------------
作业贴啊!