离散数学大作业――编程实现最小生成树.doc

离散数学大作业――编程实现最小生成树.doc

ID:56956736

大小:107.00 KB

页数:8页

时间:2020-07-28

离散数学大作业――编程实现最小生成树.doc_第1页
离散数学大作业――编程实现最小生成树.doc_第2页
离散数学大作业――编程实现最小生成树.doc_第3页
离散数学大作业――编程实现最小生成树.doc_第4页
离散数学大作业――编程实现最小生成树.doc_第5页
资源描述:

《离散数学大作业――编程实现最小生成树.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、离散数学大作业——编程实现最小生成树学院:电子工程学院班级:学号:姓名:杨青锋一、最小生成树 概念:设G=(V,E)是无向连通带权图,即一个网络。E中每条边(v,w)的权为c[v,w]。所有生成树G’上各边权的总和最小的生成树称为G的最小生成树。二、prim算法(贪心思想)设图G=(V,E),其生成树的顶点集合为U。1.把v0放入U。2.在所有u∈U,v∈V-U的边(u,v)∈E中找一条最小权值的边,加入生成树。3.把2找到的边的v加入U集合。如果U集合已有n个元素,则结束,否则继续执行2其算法的时间复杂度为O

2、(n^2)三、程序源代码#include#include#definem6#definen11typedefstruct{inti,tag;chars;}vertice;typedefstruct{inta,b,tag;intweight;}edge;verticev[m];edgee[n];voidinititate();voidsort();voidchuli();intbiaoji(edge*s);voidprint();voidmain(){inititate();

3、sort();chuli();print();}voidinititate(){inti;printf("输入图的%d个顶点:",m);for(i=0;i

4、ge*s){inti,j;i=s->a;j=s->b;if(v[i].tag==0

5、

6、v[j].tag==0){v[i].tag=1;v[i].tag=1;s->tag=1;return1;}return0;}voidprint(){inti,j=0;printf("最小生成树的边为:");for(i=0;i",e[i].a,e[i].b);j++;}printf("");}voidsort(){edges

7、;inti,j;for(i=0;ie[j].weight){s=e[i];e[i]=e[j];e[j]=s;}}}}voidchuli(){inti,j=0;edge*s;for(i=0;i

8、边为:<1-2><2-3><2-4><4-6><5-6>Pressanykeytocontinue

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。