⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7.10.c

📁 数据结构--C语言 数据结构源代码大全 用C语言编写
💻 C
字号:
/*普里姆算法描述如下:*/
struct 
{
	VertexData adjvex;
    	int lowcost;
}closedge[MAX_VERTEX_NUM];   /* 求最小生成树时的辅助数组*/

MiniSpanTree_Prim(AdjMatrix gn,VertexData u)
/*从顶点u出发,按普里姆算法构造连通网gn 的最小生成树,并输出生成树的每条边*/
{
	k=LocateVertex(gn, u);
	closedge[k].lowcost=0;   /*初始化,U={u} */
	for(i=0;i<gn.vexnum;i++)    
		if (i!=k)    /*对V-U中的顶点i,初始化closedge[i]*/
	    	{
			closedge[i].adjvex=u; 
			closedge[i].lowcost=gn.arcs[k][i].adj;
		}
	for(e=1;e<=gn.vexnum-1;e++)    /*找n-1条边(n= gn.vexnum) */
	{
		k0=Minium(closedge);     /* closedge[k0]中存有当前最小边(u0,v0)的信息*/
		u0=closedge[k0].adjvex;   /* u0∈U*/
		v0=gn.vexs[k0];          /* v0∈V-U*/
	    	printf("%d,%d",u0, v0);    /*输出生成树的当前最小边(u0,v0)*/
		closedge[k0].lowcost=0;     /*将顶点v0纳入U集合*/
		for(i=0;i<vexnum;i++)    /*在顶点v0并入U之后,更新closedge[i]*/
			if(gn.arcs[k0][i].adj<closedge[i].lowcost)
            		{ 
				closedge[i].lowcost=gn.arcs[k0][i].adj;
				closedge[i].adjvex=v0;
			}  
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -