数据结构课程设计-副本.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构课程设计》报告 题 目 通讯线路的敷设问题 专 业 计算机科学与技术 班 级 1班 学 生 沈美珠 同组人员 徐颖 高鹏 黄浪 利锐昌 题目: 通信线路的敷设问题 题目内容: 若要在下图中的13个城市之间建设通信网络,只需要敷设12条线路即可,边上的数字为两个城市之间建设线路的花费,单位:拾万元。如何以最低的经济代价建设这个通信网,是一个网的最小生成树的问题。 要求: ⑴ 以邻接矩阵方式保存图的数据,并以邻接链表的形式输出图的数据; ⑵ 以边表方式保存图的数据,并以邻接矩阵方式的形式输出图的数据; ⑶ 用Prim算法求网的最小生成树,并以邻接链表的形式显示所求得的最小生成树,然后计算敷设相应的通信网的总造价; ⑷ 用Kruskal算法求网的最小生成树,并以邻接链表的形式显示所求得的最小生成树,然后计算敷设相应的通信网的总造价; ⑸ 整个应用设计成一个菜单,具有上述功能要求和退出系统的基本的功能; ⒈ 本人完成的工作: 第四个问题 完成的工作的内容: 用Prim算法求网的最小生成树,并以邻接链表的形式显示所求得的最小生成树,然后计算敷设相应的通信网的总造价; ⒉ 所采用的数据结构 数据结构的定义 typedef struct MSTEdge { int vex1,vex2;//边所依附的两个顶点 Weightype weight;//边的权值 }MSTEdge;//prime算法中每条边的存储结构 typedef struct { int adjvex;//边所依附U中的顶点 int lowcost;//该边的权值 }closedge;//存放V-U中顶点到U中顶点权值最小的边 ⒊ 所设计的函数(小3号黑体) MSTEdge *prim_MST(MGraph *p,int u)//从第U个顶点开始构造的图A的最小生成树 { MSTEdge *TE;//指向最小生成树的边 closedge closedge[MAX_EDGE];//存放V-U中顶点到U中顶点权值最小的边 int j,k,v,min,f=0; for(j=0;j13;j++) {closedge[j].adjvex=u; closedge[j].lowcost=p-arcs[j][u]; }//初始化数组closedge[n] closedge[u].lowcost=0;//初始时置U={u} TE=(MSTEdge *)malloc(12*sizeof(MSTEdge)); for(j=0;j12;j++) {min=INFINITY; for(v=0;v13;v++) if(closedge[v].lowcost!=0closedge[v].lowcostmin) {min=closedge[v].lowcost; k=v;} TE[j].vex1=closedge[k].adjvex; TE[j].vex2=k; TE[j].weight=closedge[k].lowcost; printf((%d,%d)\n,p-vexlist[TE[j].vex1],p-vexlist[TE[j].vex2]); f=f+TE[j].weight; closedge[k].lowcost=0;//将顶点k并入U中 for(v=0;v13;v++) if(p-arcs[v][k]closedge[v].lowcost) {closedge[v].lowcost=p-arcs[v][k]; closedge[v].adjvex=k; }//修改数组closedge[n]得各个元素的值 } printf(敷设相应的通信网的总造价为:); printf(%d\n,f); return(TE); }//求最小生成树的prime算法 对每个函数必须给出所采用的算法思想和程序框图;(小4号宋体) 算法思想 ⑴ 若从顶点v0出发构造,U={v0},TE={}; ⑵ 先找权值最小的边(u

文档评论(0)

daijun + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档