欢迎来到天天文库
浏览记录
ID:47325312
大小:86.51 KB
页数:24页
时间:2020-01-10
《最短路径算法源程序代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include#defineJiedianNum6//最大结点数#defineNameLenght3//节点名字长度#defineInfinity10000//若节点间没有路径距离设定为Infinitychar*JiedianNameFile="jiedianname.txt";//图的顶点--节点名char*JiedianPathFile="jiedianpath.txt";//边--节点间的连接关系char*MinPathDataFile="minpath.txt";/
2、/最短路径数据/********************************************************//*从文件中读入结点数据*//*函数参数:*//*charjiedian[][]:存放节点名的数组*//*int*NodNum:指针变量,指向存放节点个数的变量*//*输入数据:文本数据文件:JiedianNameFile*//*文件数据格式:*//*<节点个数>*//*<节点名>*//*输出数据:指从该函数中带回到调用函数的数据,包括:*//*jiedian[][]--节点名称*//*NodeNum--节点名的个数*//*返回值:数
3、据读入是否成功的标志*//*0--失败1--成功*//********************************************************/intInputJiedianNode(charjiedian[][NameLenght],int*NodeNum){inti,n;FILE*fp;if(!(fp=fopen(JiedianNameFile,"r"))){printf("节点数据文件不存在");getch();return(0);}fscanf(fp,"%d",&n);if(!n){printf("文件中无节点数据!");
4、getch();return(0);}for(i=0;i5、le*//*文件数据格式:二进制数据,数据存放顺序:*//*<节点个数n>*//*输出数据:指从该函数中带回到调用函数的数据,包括:*//*jiedian[][]*//*Path[][]*//*NodeNum*//*返回值:数据读入是否成功的标志*//*0--失败1--成功*//********************************************************/intInputMinPath(intdist[][JiedianNum],intPath[][JiedianNum],int*Nod6、eNum){intn;FILE*fp;if(!(fp=fopen(MinPathDataFile,"rb"))){printf("最小路径数据文件不存在!");getch();return(0);}fread(&n,sizeof(int),1,fp);fread(dist,sizeof(int),n*n,fp);fread(Path,sizeof(int),n*n,fp);fclose(fp);*NodeNum=n;return(1);}/********************************************************//*查7、找节点名*//*函数参数:*//*charstr[][]:存放节点名的数组*//*intn:str中数据的行数,即节点名的个数*//*char*p:指针变量,表示需要查找的节点名*//*输入数据:全部函数参数均为输入数据*//*输出数据:返回值作为函数的输出数据*//*查找成功:被查找的节点名在数组str中的序号*//*查找失败:-1,表示被查找的节点名未出现在数组中*//********************************************************/intsearch(charstr[][NameLenght],intn,ch8、ar*p){inti=0
5、le*//*文件数据格式:二进制数据,数据存放顺序:*//*<节点个数n>*//*输出数据:指从该函数中带回到调用函数的数据,包括:*//*jiedian[][]*//*Path[][]*//*NodeNum*//*返回值:数据读入是否成功的标志*//*0--失败1--成功*//********************************************************/intInputMinPath(intdist[][JiedianNum],intPath[][JiedianNum],int*Nod
6、eNum){intn;FILE*fp;if(!(fp=fopen(MinPathDataFile,"rb"))){printf("最小路径数据文件不存在!");getch();return(0);}fread(&n,sizeof(int),1,fp);fread(dist,sizeof(int),n*n,fp);fread(Path,sizeof(int),n*n,fp);fclose(fp);*NodeNum=n;return(1);}/********************************************************//*查
7、找节点名*//*函数参数:*//*charstr[][]:存放节点名的数组*//*intn:str中数据的行数,即节点名的个数*//*char*p:指针变量,表示需要查找的节点名*//*输入数据:全部函数参数均为输入数据*//*输出数据:返回值作为函数的输出数据*//*查找成功:被查找的节点名在数组str中的序号*//*查找失败:-1,表示被查找的节点名未出现在数组中*//********************************************************/intsearch(charstr[][NameLenght],intn,ch
8、ar*p){inti=0
此文档下载收益归作者所有