資源簡介
需要在某個(gè)城市的n個(gè)居民區(qū)之間鋪設(shè)煤氣管道,則在這n個(gè)居民區(qū)之間只要鋪設(shè)n-1條管道即可。假設(shè)任意兩個(gè)居民區(qū)之間都可以架設(shè)管道,但由于地理環(huán)境的不同,所需經(jīng)費(fèi)不同。選擇最優(yōu)的施工方案能使總投資盡可能少,這個(gè)問題即為求網(wǎng)的“最小生成樹”。
代碼片段和文件信息
#include“stdio.h“
struct?closed
{?int?adjvex;
??float?cost;
};
/**********************************************************************/
?void?plim(float?ARRY[][9]struct?closed?help1[])
{
??struct?closed?closedge[9];
??int?i=0j=0k=0n=0;
??float?msumcost=0;
??for(i=0;i<9;i++)???closedge[i].cost=999.0;
??closedge[0].cost=NULL;
??printf(“\nzui?xiao?sheng?cheng?bian?shi?:\n“);
??for(i=0;i<8;i++)
??{??????m=999;
????for(j=0;j<9;j++)
?????if(closedge[j].cost>ARRY[n][j])
??????{??closedge[j].cost=ARRY[n][j];
?closedge[j].adjvex=n+1;
???????}
?????for(k=0;k<9;k++)
?????{?if((closedge[k].cost {??m=closedge[k].cost;
???n=k;}
?????}
?????printf(“(%c%c:%5.1f)--->“(‘A‘+closedge[n].adjvex-1)‘A‘+nclosedge[n].cost);
??????help1[n].cost=close
評論
共有 條評論