建立通信网络(3)

2025-06-26

printf(\权排序之后的为:\\n\ for (i = 1; i <= G->arcnum; i++) { printf(\ %d\\n\ } }

void Swapn(edge *edges,int i, int j)//交换权值 以及头和尾 { int temp; temp = edges[i].begin;

edges[i].begin = edges[j].begin; edges[j].begin = temp;

temp = edges[i].end;

edges[i].end = edges[j].end; edges[j].end = temp;

temp = edges[i].weight;

edges[i].weight = edges[j].weight; edges[j].weight = temp; }

void MiniSpanTree(MGraph *G)//生成最小生成树 { int i, j, n, m; int k = 1; int parent[M]; edge edges[M]; for ( i = 1; i < G->vexnum; i++) { for (j = i + 1; j <= G->vexnum; j++) { if (G->arc[i][j].adj == 1) { edges[k].begin = i; edges[k].end = j; edges[k].weight = G->arc[i][j].weight; k++;

} } }

sort(edges, G);

for (i = 1; i <= G->arcnum; i++) { parent[i] = 0; }

printf(\最小生成树为:\\n\ for (i = 1; i <= G->arcnum; i++)//核心部分 { n = Find(parent, edges[i].begin); m = Find(parent, edges[i].end); if (n != m)//判断是否有回路,如果有,舍弃 { parent[m] = n; printf(\ %d\\n\ } } }

int Find(int *parent, int f)//找尾 { while ( parent[f] > 0) { f = parent[f]; }

return f; }

int main(void)//主函数 { MGraph *G; G = (MGraph*)malloc(sizeof(MGraph)); if (G == NULL) { printf(\ exit(1); } CreatGraph(G);

MiniSpanTree(G); system(\ return 0; }


建立通信网络(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2024年高考试题分类汇编:导数(文) - 图文

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219