普里姆算法
从连通图N=(U,E)中招最小生成树T=(U,TE).
1.算法思想
<1>若从顶点v0出发构造,U={v0},TE={};
<2>先找权值最小的边(u,v),其中u∈U且v∈V-U,并且子图不构成环,则
U=U∪{v},TE=TE∪{(u,v)};
设用邻接 矩阵 ((二维数组))表示图,两个顶点之间不存在边的权值为机内允许的最大值。
为便于算法实现,设置一个一 维数组
closedge[n],用来保存,V-U中各顶点到U中顶点具有权值最小的边。数组元素的类型定义是
在Prime算法中,图采用邻接矩阵存储,所构造的最小生成树用一维数组存储其n-1条边,
每条边的存储结构描述:
从连通图N=(U,E)中招最小生成树T=(U,TE).
1.算法思想
<1>若从顶点v0出发构造,U={v0},TE={};
<2>先找权值最小的边(u,v),其中u∈U且v∈V-U,并且子图不构成环,则
U=U∪{v},TE=TE∪{(u,v)};
<3>重复(2),直到U=V为止.则TE中必有n-1条边,T=(U,TE)就是最小生成树
设用邻接 矩阵 ((二维数组))表示图,两个顶点之间不存在边的权值为机内允许的最大值。
为便于算法实现,设置一个一 维数组
closedge[n],用来保存,V-U中各顶点到U中顶点具有权值最小的边。数组元素的类型定义是
struct
{
int adjvex;/*边所依附于U中的顶点*/
int lowcost;/*该边的权值*/
}closedge[MAX_EDGE];
在Prime算法中,图采用邻接矩阵存储,所构造的最小生成树用一维数组存储其n-1条边,
每条边的存储结构描述:
typedef struct MSTEdge
{
int