通信网络设计new_第1页
通信网络设计new_第2页
通信网络设计new_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如果以无向网表示N个城市之间通信网络的建设计划,顶点表示城市,边上的权表示该线路的造价,设计一个方案,使这个通信网的总造价最低。实现提示:这是一个求连通的带权无向图的最小代价生成树的问题。建立图的邻接矩阵,然后以prime算法来求最小生成树。算法实现:设图的顶点集合V有N个顶点,prime算法粗略描述如下:(1) 设置一个顶点的集合S1和一个边的集合TE,S1和TE的初始状态皆为空集。(2) 选定图中的一个顶点k(从此顶点开始求最小代价生成树),将k加入集合S1。(3) 重复下列步骤,直至选取了n-1条边: 选取一条权值最小的边(x,y),其中xS1,y S1。 将顶点y加入集合 S1,边(x

2、,y)加入集合TE。参考程序:# include <stdio.h># define n 5# define max 1000.0typedef struct node int no; float wgt; struct node *next; edgenode;typedef struct char vtx; edgenode *link; vexnode;float gali nn = 0,2,12,10,max,2,0,8,max,9,12,8,0,6,3,10,max,6,0,7,max,9,3,7,0;typedef vexnode Graphn;Graph G;void

3、 prim(vexnode G,int k) int v2linkn, vsetn,parentn,wn; edgenode *ptr ; int x, s, ecount, i, y, z, f; s=-1; x = k; vsetk = -1; v2linkn = -1; ecount=0; for(i=0;i<n;i+) if(i!=k) vseti=3; while(ecount<n-1) ptr=Gx.link; while(ptr!=Null) y=ptr->no; if(vsety= =2)&&(ptr->wgt<wy) /*y在集合

4、v2*/ parenty = x; wy=ptr->wgt; if(vsety= =3) /*y在集合v3*/ vsety=2; v2linky=s; s=y; parenty = x; wy=ptr->wgt;ptr = ptr->next; if(s= =-1) break; /*无最小代价生成树*/ z=x=s; y=v2linkx; f=-1; while(y!=-1) if(wy<wx) x=y;f=z; z=y; y=v2linky;if(f= =-1) s=v2linkx;else v2linkf=v2linkx;vsetx=1;ecount+; /*边数

5、计数*/printf(“nroot%c:t”, Gk.vtx); /*输出结点*/for(i=0;i<n;i+)if(i!=k) printf(“%c”,Gi.vtx); f=parenti; printf(“%ct”, Gf.vtx);void creatlist(vexnode ga) int i, j, k, e, w; edgenode *se; for(i=0; i<n; i+) gai.vtx=a+i; for(j=0;j<n;j+) if(galiij<max)&&(galiij!=0) se=(edgenode*)malloc(sizeof(*se); se->no=j; se->next=gai.link; se->wgt=galiij; gai.link=se;main() int i; edgenode *ve; creatlist(G); for(i=0;i<n;i+) printf(“n v%c=link:”,Gi.vtx); ve=Gi.link; while(v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论