离散大作业.doc

上传人:11****ws 文档编号:3283541 上传时间:2019-05-28 格式:DOC 页数:5 大小:90KB
下载 相关 举报
离散大作业.doc_第1页
第1页 / 共5页
离散大作业.doc_第2页
第2页 / 共5页
离散大作业.doc_第3页
第3页 / 共5页
离散大作业.doc_第4页
第4页 / 共5页
离散大作业.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 离散数学导论大作业-最小生成树一 问题描述:求下图的最小生成树1 113 9 87465102abcdef二,问题求解用Kruskal算法求解上述问题1. Kruskal的算法描述如下:K r u s k a l算法每次选择n- 1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能形成一棵生成树。K r u s k a l算法分e 步,其中e 是网络中边的数目。按耗费递增的顺序来考虑这e 条边,每次考虑一条边。当考虑某条边时,若将其加入到已选边的集合中会出现环路,则将其抛弃,否则,将它选入。2. 代码如下:#

2、include#include#include#define name 5/。顶点名占5个字符#define vertexnum 40 /。顶点数目最多为 40typedef char Vertexname;/。顶点名字串typedef int AdjMatrixvertexnumvertexnum;/邻接距阵struct MGraph/。定义图的结构体类型Vertex vexsvertexnum;AdjMatrix arcs;int vexnum,arcnum;typedef structVertex adjvex;/。当前点int lowcost;/。代价minsidevertexnum;

3、/声明函数原型int LocateVex(MGraph G,Vertex u);void CreateGraph(MGraphint minimum(minside SZ,MGraph G);void MiniSpanTree_PRIM(MGraph G,Vertex u);/主函数int main()MGraph g;CreateGraph(g);MiniSpanTree_PRIM(g,g.vexs0);system(“PAUSE“);return 0;int LocateVex(MGraph G,Vertex u)/。 。 。 。 。 。 。 。 。 。 。结点的定位int i;for(i

4、=0;i0k=j;return k;void MiniSpanTree_PRIM(MGraph G,Vertex u)int i,j,k;minside closedge;k=LocateVex(G,u);for(j=0;jG.vexnum;+j)strcpy(closedgej.adjvex,u);closedgej.lowcost=G.arcskj;closedgek.lowcost=0;printf(“最小代价生成树的各条边为:n“);for(i=1;iG.vexnum;+i)k=minimum(closedge,G);printf(“(%s-%s)n“,closedgek.adjvex,G.vexsk);closedgek.lowcost=0;for(j=0;jG.vexnum;+j)if(G.arcskjclosedgej.lowcost)strcpy(closedgej.adjvex,G.vexsk);closedgej.lowcost=G.arcskj;3. 运行结果如下所示:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。