ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:28.50KB ,
资源ID:235721      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/235721.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图的最短路径算法的实现.doc)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图的最短路径算法的实现.doc

1、图的最短路径算法的实现C语言#include#include#include#define INF 32767#define MAXV 100#define BUFLEN 1024typedef struct char name100;char info1000; VertexType;typedef struct VertexType vexs10; int arcs100100;int vexnum,arcnum; MGraph;/图结构 char* getFile(char fileName,char *array,int &count)FILE *file;char bufBUFLEN

2、;int len=0;/文件读取的长度 file=fopen(fileName,rt);/打开graph.txt的信息 if(file=NULL)/文件为空的处理办法 printf(Cannot open file strike any key exit!n);exit(1);while(fgets(buf,BUFLEN,file) len=strlen(buf); arraycount=(char*)malloc(len+1); if(!arraycount) break; strcpy(arraycount+,buf);fclose(file);return array;void getI

3、nfo(int &vex,int &arc,char *array)char buf_ch100;char *ch100; char *tokenp;int str_count=0,str_len=0;tokenp=strtok(array, );strcpy(buf_ch,tokenp);while(tokenp!=NULL)str_len=strlen(tokenp); chstr_count=(char*)malloc(str_len+1); strcpy(chstr_count+,tokenp); tokenp=strtok(NULL, );for(int i=0;istr_count

4、;i+)if(i%2=1)chistrlen(chi)-1=0;sscanf(chi,%d,&arc);elsesscanf(chi,%d,&vex); MGraph setVertexTypeInfo(MGraph g,char *arrayVer)int str_count=0;char buf_ch100;char *ch100;char *tokenp;for(int i=0;ig.vexnum+1&arrayVerg.vexnum;i+)int str_len=0;tokenp=strtok(arrayVeri, );strcpy(buf_ch,tokenp);while(token

5、p!=NULL) str_len=strlen(tokenp); chstr_count=(char*)malloc(str_len+1); strcpy(chstr_count+,tokenp);tokenp=strtok(NULL, );for(int i1=2;i1str_count;i1+)if(i1%2=1)chi1strlen(chi1)-1=0;strcpy(g.vexsi1/2-1.info,chi1);elsestrcpy(g.vexsi1/2-1.name,chi1);return g;/设置无向图的基本信息 MGraph setMGraphInfo(MGraph g,ch

6、ar *arrayMGraph,int &count)int str_count=0;char buf_ch100;char *ch100;char *tokenp;for(int i4=g.vexnum+1;i4count;i4+)int str_len=0;tokenp=strtok(arrayMGraphi4, );strcpy(buf_ch,tokenp);while(tokenp!=NULL) str_len=strlen(tokenp); chstr_count=(char*)malloc(str_len+1); strcpy(chstr_count+,tokenp);tokenp

7、=strtok(NULL, );char *info8;/需要匹配的字符串集合 for(int i2=0;i2g.vexnum;i2+)infoi2=g.vexsi2.name;int G5050;/邻接矩阵初始化 for(int i3=0;i3g.vexnum;i3+)for(int j=0;jg.vexnum;j+)Gi3j=INF;int temp100=0;/存储距离信息 int temp_count=0;/距离计数器 int templeft100=0;/起始地址的代号信息 int templeft_count=0;/起始地址计数器 int tempright100=0;/终点地址的

8、代号信息 int tempright_count=0;/终点地址的计数器 for(int k=0;kstr_count;k+)if(k%3=0)for(int m=0;mg.vexnum;m+)if(strcmp(infom,chk)=0)templefttempleft_count+=m;else if(k%3=1)for(int m=0;mg.vexnum;m+)if(strcmp(infom,chk)=0)temprighttempright_count+=m;else if(k%3=2)chkstrlen(chk)-1=0;sscanf(chk,%d,&temptemp_count+)

9、;for(int i5=0;i5temp_count;i5+)Gtemplefti5temprighti5=tempi5;for(int i6=0;i6g.vexnum;i6+)/建立图的邻接矩阵for(int j=0;jg.vexnum;j+)g.arcsi6j=Gi6j;return g;void DispMat(MGraph g)int i,j;for(i=0;ig.vexnum;i+)for (j=0;j,g.vexsk.name);ppath(g,path,k,j);void DisPath(MGraph g,int AMAXV,int pathMAXV,int i,int j)if

10、 (Aij=INF)if (i!=j) printf(从 %s 到 %s 没有路径n,g.vexsi.name,g.vexsj.name);elseprintf(%s-,g.vexsi.name);ppath(g,path,i,j);printf(%s,g.vexsj.name);printf(t路径长度为:%dn,Aij); void Floyd(MGraph g,int p,int q)/弗洛伊德算法int AMAXVMAXV,pathMAXVMAXV;int i,j,k,n=g.vexnum;for (i=0;in;i+)for (j=0;jn;j+) Aij=g.arcsij;path

11、ij=-1;for (k=0;kn;k+) for (i=0;in;i+) for (j=0;j(Aik+Akj) Aij=Aik+Akj; pathij=k; printf(最短路径为:n);DisPath(g,A,path,p,q); /输出最短路径int main()int vex,arc;printf( 欢迎来到江西理工大学 n);printf( n);MGraph g;/图的定义char *array1;/存储顶点和边数数据信息 char *arrayVer10;/存储地点信息 char *arrayMGraphMAXV;/存储关于图的信息 int count=0;char fileName=D:数据结构shujujiegouyigraph.txt;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1