老师要求做程序设计 设计内容和要求(包括原始数据、技术参数、条件、设计要求等)。 谢了 !!!!
发布网友
发布时间:2022-05-01 10:57
我来回答
共2个回答
热心网友
时间:2023-10-09 11:02
void prim(int cost[][MAXN],int n,int u) /*n为城市数,u为初始化进入U的第一个城市*/
{
int lowcost[MAXN],min;
int closest[MAXN];
int i,j,k;
for(i=1;i<=n;i++){ /*初始化U外各点到U的lowcost*/
lowcost[i]=cost[u][i];
closest[i]=u;
}
for(i=1;i<n;i++)
{
min=MAXINT; /*循环n-1次,使全部n个结点进去U*/
for(j=1;j<=n;j++) /*寻找每轮最小代价边,即最短距离路线*/
if(lowcost[j]!=0&&lowcost[j]<min)
{
min=lowcost[j];
k=j;
}
printf("NetEdage:\ncity->%s\ncity->%s\ndistance->%d\n\n",city[closest[k]],city[k],min); /*输出新连接的城市和距离*/
lowcost[k]=0; /*表示城市k已进去集合U*/
for(j=1;j<=n;j++) /*更新U外各顶点(城市)的lowcost*/
if(cost[k][j]!=0&&cost[k][j]<lowcost[j])
{
lowcost[j]=cost[k][j];
closest[j]=k;
}
}
}追问完整的c++ 程序设计 谢了
热心网友
时间:2023-10-09 11:02
用一个树形结构就可以了:
struct Pos
{
// 位置变量
// 上一个节点
Pos* Back;
// 下一个节点
Pos* Next;
// 分支节点
Pos* pppp;
}