交通图咨询查询系统数据结构_第1页
交通图咨询查询系统数据结构_第2页
交通图咨询查询系统数据结构_第3页
交通图咨询查询系统数据结构_第4页
交通图咨询查询系统数据结构_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、 . . 47/53交通图咨询查询系统数据结构培训资料 日期:信息科学与工程学院结构数据课 程 设 计 报 告课程设计名称:交通咨询系统 专 业 班 级 : 计算机xxx学 生 姓 名 :xxx学 号 :2015xxxx指 导 教 师 :xx课程设计时间:2016.07.042016.07.08 计算机应用技术 专业课程设计任务书学生Xxx专业班级学号题 目交通咨询系统课题性质A课题来源D指导教师白浩同组无主要容建立交通网络图的存储结构。某个城市到达其余各城市的最短路径。实现两个城市之间最短路径的问题。主要目的是给用户提供路径咨询任务要求根据需求分析给出概要设计,本系统包括以下功能模块:添加信

2、息、查询信息、删除信息、修改信息、退出和保存信息;结合课题利用数据结构相关知识,利用C语言实现该系统的所有上述功能,要求界面友善,程序运行正常;提交课程设计报告1份(具体写作要求参考样例),可运行的系统和源代码电子版一套。参考文献严蔚敏.数据结构(C语言版).:清华大学谭浩强.C语言程序设计.(第三版):清华大学审查意见指导教师签字:xx教研室主任签字:xx2016年 06月27日说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页填 表 说 明1“课题性质”一栏:A工程设计;B工程技术研究;C软件工程(如CAI课题等);D文献型综述;E其它。2“课题来源”一栏:

3、A自然科学基金与部、省、市级以上科研课题;B企、事业单位委托课题;C校、院(系、部)级基金课题;D自拟课题。目录TOC o 1-3 h u HYPERLINK l _Toc2164 1需求分析 PAGEREF _Toc2164 1 HYPERLINK l _Toc28953 1.1 添加交通图信息 PAGEREF _Toc28953 1 HYPERLINK l _Toc30444 1.2 查询单源最短路径 PAGEREF _Toc30444 1 HYPERLINK l _Toc9765 1.3 查询多源最短路径 PAGEREF _Toc9765 1 HYPERLINK l _Toc5779 1

4、.4 更新交通图信息 PAGEREF _Toc5779 2 HYPERLINK l _Toc19054 1.6 读取、保存信息 PAGEREF _Toc19054 2 HYPERLINK l _Toc24862 2概要设计 PAGEREF _Toc24862 3 HYPERLINK l _Toc312 2.1 数据类型的定义 PAGEREF _Toc312 3 HYPERLINK l _Toc17308 2.2 功能模块结构图 PAGEREF _Toc17308 4 HYPERLINK l _Toc26314 3运行环境 PAGEREF _Toc26314 6 HYPERLINK l _Toc

5、1760 4开发工具和编程语言 PAGEREF _Toc1760 6 HYPERLINK l _Toc28587 5详细设计 PAGEREF _Toc28587 7 HYPERLINK l _Toc26706 5.1 图结构的基本操作 PAGEREF _Toc26706 7 HYPERLINK l _Toc31417 5.1.1添加城市结点和路径结点 PAGEREF _Toc31417 8HYPERLINK l _Toc20000 5.1.2修改城市结点和路径结点 PAGEREF _Toc20000 8 HYPERLINK l _Toc29959 5.1.3删除城市结点和路径结点 PAGERE

6、F _Toc29959 8 HYPERLINK l _Toc6699 5.1.4退出保存 PAGEREF _Toc6699 8 HYPERLINK l _Toc9641 5.2 迪杰斯特拉算法的实现 PAGEREF _Toc9641 8 HYPERLINK l _Toc31009 5.2.1 迪杰斯特拉算法函数 PAGEREF _Toc31009 8 HYPERLINK l _Toc10450 5.2.2 提取迪杰斯特拉函数信息 PAGEREF _Toc10450 8 HYPERLINK l _Toc14244 5.2.3 求多源最短路径 PAGEREF _Toc14244 8 HYPERLI

7、NK l _Toc7409 6程序编码 PAGEREF _Toc7409 9 HYPERLINK l _Toc13680 7运行结果 PAGEREF _Toc13680 41 HYPERLINK l _Toc22963 8 心得体会 PAGEREF _Toc22963 46 HYPERLINK l _Toc3800 9参考文献 PAGEREF _Toc3800 47需求分析本系统中的数据来源于标准输入设备(如键盘)和文件,可以实现对交通图城市、城市到其余城市的距离的操作,根据需要可查询某两个城市之间的最短距离、城市到各城市的最短距离,各个城市到各个城市的最短距离,以与路径。本系统要实现的功能有

8、:添加城市和城市间距离,删除城市与城市间距离,修改城市间距离,查询城市间的最短路径,查询某个城市到某个城市的最短路径。具体如下:添加交通图信息能录入新数据(城市和路径)。当录入了重复的城市和路径时,则提示数据录入重复并取消录入;当交通图中超过15个城市时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。查询单源最短路径能够实现输入起点城市名后,查询出其到各个城市的最短路径,输出该城市到的其他所有的城市的最短路径。查询多源最短路径 输入起点城市名和终点城市名,查询出两个城市的最短路径,并输出该最短路径。更新交通图信息根据给定的城市名能够修改该城市的名字。或者输入两个城

9、市,修改一条路径的距离。 1.5 删除交通图信息 根据输入的城市名 ,删除与该城市有关的所有路径。输入两个城市可以删除一条路径。 1.6 读取、保存信息能够实现退出系统时把交通图中的信息保存在一个文件中,在程序瑕疵运行时能够读取出来。概要设计数据类型的定义定义交通图城市的元素类型 typedef struct _citychar name10;城市名struct _path * firstpath;/第一个路径AdjList15,CityNode;定义交通图的路径元素类型 typedef struct _pathint adjcity/邻接点域int distance;/距离struct _p

10、ath *nextpath;/下一个路径PathNode,*PathPtr;定义交通图类型 typedef struct int cities;intpaths; AdjList list;Graph;全局变量PList head;typedef int PathMatrix;typedef int ShortPathTable;PathMatrix PMAX_CITIESMAX_CITIES;ShortPathTable DMAX_CITIES;功能模块结构图根据需求分析,为了满足用户的功能需求,按照软件开发方法学中的模块划分原则,我将本系统主要划分为如下模块:操作交通图信息,和查询交通图路

11、径两大模块。各模块之间的关系如图1所示。图 SEQ 图 * ARABIC1模块结构图为了实现上述功能模块,分别在顺序表和单链表物理结构上定义了多个函数,本系统定义的函数和功能如下:数据结构部分部分 void initalize_graph(Graph *G)功能为:图初始化,即生成一个空图。int CreatAdjList(Graph *G)/初始化交通图功能为:图的创建,用图存储数据。void ADD_CITY(Graph *G)功能为:往图G中插入一个城市结点。void ADD_PATH(Graph *G,int ori,int add,PathNode *p)功能为:往图G中插入一个路径

12、结点。void DELETE_CITY(Graph *G,int city)功能为:删除图G中的指定的城市与其相关的路径。void DELETE_PATH(Graph *G,int left,int right)功能为:删除图G中一条指定的路径。void UPDATE_PATH(Graph *G,int left,int right)功能为:更新图G中的一个路径信息 。Status SqListSearchByName(SqList *L,char *name) ;功能为:通过查找顺序表中,返回值为其在通讯录中的位置 。void UPDATE_CITY(Graph *G,int city,ch

13、ar *name)功能为:更新图G中的一个城市信息 。Status SqListSearchByName(SqList *L,char *phone) ;功能为:通过查找顺序表中,返回值为其在通讯录中的位置。 2.程序功能部分 void MODE_CLIENT(Graph *G)功能为:客户端界面函数。 void MODE_ADMIN(Graph *G)功能为:管理员端界面函数。 int ReadAdjList(Graph *G)功能为:从文件中读取交通图。 int WriteAdjList(Graph *G)功能为:在文件中存储交通图。 void menu(int i)功能为:各种的端界面打

14、印。3.算法实现部分void ShortestPath(Graph *G,int v0)功能为:迪杰斯特拉算法,求出对V0单源最短路径。void Print(Graph *G,int v0)功能为:根据迪杰斯特拉算法,打印出V0单源最短路径。void Print2(Graph *G,int v1,int v2)功能为:根据迪杰斯特拉算法,打印出V1和V2的最短路径。void FindPath(Graph *G,int v)功能为:打印出V1到V2的经过路径。int dis(Graph *G,int left,int right)功能为:返回指定路径的距离。运行环境硬件环境:PC机存 4G;硬盘

15、500G软件环境:操作系统:windows10开发工具和编程语言开发环境:CodeBlocks 、Dev C+编程语言:C语言详细设计在概要设计的基础上,对每个模块进行部逻辑处理部分详细设计。下面分别列出各个模块具体实现流程图:图结构的基本操作观察了数据对象后,我选择用一个邻接表用来存储图2信息,则数据结构的基本操作也就确定了,分别为图的添加、删除、更新。图 2模拟交通图5.1.1添加城市结点和路径结点 和图的基本操作一样,只是该城市每增加一个城市结点要在弧的邻接点对应的城市上也增加一条弧。5.1.2修改城市结点和路径结点 和图的基本操作一样。5.1.3删除城市结点和路径结点 和图的基本操作一

16、样,只是该城市每删除一个城市结点要在弧的邻接点对应的城市上也删除那条弧。5.1.4退出保存 在主函数的开始部分添加Read函数,在管理员修改模式添加Write函数。实现对图结构的读取保存。5.2 迪杰斯特拉算法的实现把算法实现得到不仅仅是一系列数组,而是将这些数组的信息提炼成有用的信息输出出来,将抽象的数据转换为具象的信息。5.2.1 迪杰斯特拉算法函数定义了若干个全局辅助变量,如路径矩阵P和距离数组D,final用来标记是否找到了点的最短路径在函数的初始阶段进行对个辅助变量的初始化,第一趟把V0相邻的路径距离保存下来。选择一个最小的用final记录下来,记录下最终的D和P值。再遍历其他结点,

17、如果出现新的路径,且路径小于最大值INFINITY,则保存路径和距离以便下次比较。循环n-1次得到V0到各结点的最短距离和路径。5.2.2 提取迪杰斯特拉函数信息根据P函数与D函数,可以将V0到每个终点的经过结点和最终路径求出,利用Print函数打印出V0和V,再调用FindPath函数,打印经过的结点。最后打印出距离,便可在屏幕上打印出单源最短路径。5.2.3 求多源最短路径对每个结点循环调用便可打印出每个结点到其他结点的最短路径,通过改变Print函数的形参,便可以求出两点间的最短路径。程序编码根据详细设计转化为如下代码,下面列出部分代码:#include#include #include

18、#define OVERFLOW 0#define MAX_CITIES 15#define INFINITY 999#define FALSE 0#define TRUE 1typedef struct _path int adjcity;/邻接点域 int distance;/距离 struct _path *nextpath;/下一个路径 PathNode,*PListMAX_CITIES;typedef struct _city char name10;/城市名 struct _path *firstpath;/第一个路径 AdjList15,CityNode;typedef stru

19、ct int cities; int paths; AdjList list; Graph;PList head;typedef int PathMatrix;typedef int ShortPathTable;PathMatrix PMAX_CITIESMAX_CITIES;ShortPathTable DMAX_CITIES;int CreatAdjList(Graph *G)/初始化交通图 PathNode *p,*p1,*pre; int i=0; printf(请输入交通路径数目n); scanf(%d,&G-paths); printf(请输入城市数目n); scanf(%d,&

20、G-cities); for(i=0; icities; i+) printf(请输入第%d个城市名称n,i+1); getchar(); scanf(%s,G-); G-listi.firstpath=(PathNode *)malloc(sizeof(PathNode); p=G-listi.firstpath; printf(请输入城市第一条路径的邻接城市的位置(-1表示结束)n); scanf(%d,&p-adjcity); printf(请输入城市第一条路径的距离n); scanf(%d,&p-distance); if(p-adjcity=-1) free(p)

21、; p=NULL; G-listi.firstpath = NULL;/把弧链表的first置为NULL while(p) p-nextpath=(PathNode *)malloc(sizeof(PathNode); pre=p; p=p-nextpath; printf(请输入城市下一条路径的邻接城市(-1表示结束)n); scanf(%d,&p-adjcity); if(p-adjcity=-1) free(p); p=NULL; pre-nextpath = NULL;/置pre为弧链表结束的节点 break; printf(请输入城市下一条路径的距离n); scanf(%d,&p-d

22、istance); return 0;int ReadAdjList(Graph *G)/读取交通图 FILE *fp; int r,i; PathNode *p,*p1,*pre; if( fp=fopen(graph.txt,r)=NULL) printf(文件打开失败); exit(0); r=fscanf(fp,%d %d ,&G-paths,&G-cities); if(r=2) for(i=0; icities; i+) fscanf(fp,%s,G-); G-listi.firstpath=(PathNode *)malloc(sizeof(PathNode)

23、; p=G-listi.firstpath; fscanf(fp,%d,&p-adjcity); if(p-adjcity=-1) free(p); p=NULL; G-listi.firstpath = NULL;/把弧链表的first置为NULL break; else fscanf(fp,%d,&p-distance); while(1) p-nextpath=(PathNode *)malloc(sizeof(PathNode); pre = p; p=p-nextpath; fscanf(fp,%d,&p-adjcity); if(p-adjcity=-1) free(p); p=N

24、ULL; pre-nextpath = NULL;/置pre为弧链表结束的节点 break; else fscanf(fp,%d,&p-distance); fclose(fp); return 0;int WriteAdjList(Graph *G)/读取交通图 FILE *fp; int r,i; PathNode *p,*p1; if( fp=fopen(graph.txt,w)=NULL) printf(文件打开失败); exit(0); fprintf(fp,%d %d ,G-paths,G-cities); for(i=0; icities; i+) fprintf(fp,%s ,

25、G-); p=G-listi.firstpath; while(p) fprintf(fp,%d %d ,p-adjcity,p-distance); p=p-nextpath; fprintf(fp,-1 ); fclose(fp); return 0;void ADD_PATH(Graph *G,int ori,int add,PathNode p)/添加路径 PathNode *pr; pr=(PathNode *)malloc(sizeof(PathNode); pr-adjcity=add; pr-distance=p.distance; pr-nextpath=

26、G-listori.firstpath; G-listori.firstpath=pr;void ADD_CITY(Graph *G)/添加城市 int i=0; PathNode *p,*pre; if(G-cities=MAX_CITIES) return ; while(strcmp(G-,0)!=0) i+; G-cities+; printf(请输入%d城市的名称n,i+1); getchar(); scanf(%s,G-); G-listi.firstpath=(PathNode *)malloc(sizeof(PathNode); p=G-

27、listi.firstpath; printf(请输入城市第一条路径的邻接城市的位置(-1表示结束)n); scanf(%d,&p-adjcity); printf(请输入城市第一条路径的距离n); scanf(%d,&p-distance); if(p-adjcity=-1) free(p); p=NULL; G-listi.firstpath = NULL;/把弧链表的first置为NULL else ADD_PATH(G,p-adjcity,i,*p); while(p) p-nextpath=(PathNode *)malloc(sizeof(PathNode); pre = p; p

28、=p-nextpath; printf(请输入城市下一条路径的邻接城市(-1表示结束)n); scanf(%d,&p-adjcity); printf(请输入城市下一条路径的距离n); scanf(%d,&p-distance); if(p-adjcity=-1) free(p); p=NULL; pre-nextpath = NULL;/置pre为弧链表结束的节点 else ADD_PATH(G,p-adjcity,i,*p); void UPDATE_CITY(Graph *G,int city,char *name) strcpy(G-,name);int Fi

29、ndCity(Graph *G,char name)/返回城市的序号 int i; for(i=0; icities; i+) if(strcmp(name,G-)=0) return i; return -1;void UPDATE_PATH(Graph *G,int left,int right) PathNode *p; int dis; printf(请输入修改后的路径距离n); scanf(%d,&dis); p=G-listleft.firstpath; while(1) if(right=p-adjcity) p-distance=dis; break; p=

30、p-nextpath; p=G-listright.firstpath; while(1) if(left=p-adjcity) p-distance=dis; break; p=p-nextpath; return ;void DELETE_PATH(Graph *G,int left,int right) PathNode *p,*pre; int dis; p=G-listleft.firstpath; pre=p; while(p) if(right=p-adjcity) break; p=p-nextpath; while(1) if(p=G-listleft.firstpath)

31、G-listleft.firstpath=p-nextpath; free(p); break; if(pre-nextpath=p) pre-nextpath=p-nextpath; free(p); break; p=G-listright.firstpath; pre=p; while(p) if(left=p-adjcity) break; p=p-nextpath; while(1) if(p=G-listright.firstpath) G-listright.firstpath=p-nextpath; free(p); break; if(pre-nextpath=p) pre-

32、nextpath=p-nextpath; free(p); break; return ;void DELETE_CITY(Graph *G,int city) int i; while(G-listcity.firstpath) DELETE_PATH(G,city,G-listcity.firstpath-adjcity); G-cities-; for(i=city+1; icities; i+) G-listi-1=G-listi;void menu(int i) switch(i) case 0: printf(=- ( - ) 乾杯 n); printf(欢迎进入交通咨询系统n);

33、 printf(ttttt1:任意键进入客户模式n); printf(tttt2:输入密码进入管理员模式n); printf(ttt3:输入0退出系统n); printf(o)oBINGO!=n); break; case 1: printf(=- ( - ) 乾杯 n); printf(欢迎进入交通咨询系统管理员模式n); printf(tttttttt输入:n); printf(ttttttt1:初始化交通图n); printf(tttttt2:更新交通图信息n); printf(ttttt3:删除交通图信息n); printf(tttt4:添加交通图信息n); printf(ttt5:创

34、建交通图n); printf(tt6:退出n); printf(o)oBINGO!=n); break; case 2: printf(=- ( - ) 乾杯 n); printf(欢迎进入交通咨询系统客户模式n); printf(tttttttt输入:n); printf(ttttttt1:咨询某城市到其他所有城市的最短路径n); printf(tttttt2:咨询所有城市间的最短路径n); printf(ttttt3:咨询两城市间的最短路径n); printf(tttt4:浏览地图的邻接表表示n); printf(ttt5:退出n); printf(o)oBINGO!=n); break;

35、 void initalize_graph(Graph *G) int i; for(i=0; ,0); G-listi.firstpath=NULL; void MODE_ADMIN(Graph *G) int i=0,j; char name20,name120; PathNode *p; while(1) menu(1); scanf(%d,&i); switch(i) case 1: initalize_graph(G); printf(初始化完成!n); break; case 2: printf(1:修改城市名n2:修改路径距离n3:返回上一层n); scan

36、f(%d,&j); if(j=1) printf(请输入要修改的城市名称n); gets(name); printf(请输入要修改后的城市名称n); gets(name1); UPDATE_CITY(G, FindCity(G,name),name1); printf(修改完成!n); else if(j=2) printf(请输入要修改的两个中第一个城市的名称n); gets(name); printf(请输入要修改的两个中第二个城市的名称n); gets(name1); UPDATE_PATH(G,FindCity(G,name),FindCity(G,name1);printf(修改完成

37、!n); else break; break; case 3: printf(1:删除城市n2:删除路径n3:返回上一层n); scanf(%d,&j); if(j=1) printf(请输入要删除的城市名称n); gets(name); DELETE_CITY(G,FindCity(G,name); printf(删除完成!n); else if(j=2) printf(请输入要删除的路径中第一个城市的名称n); gets(name); printf(请输入要修改的两个中第二个城市的名称n); gets(name1); DELETE_PATH(G,FindCity(G,name),FindC

38、ity(G,name1); printf(删除完成!n); else break; break; case 4: printf(1:添加城市n2:添加路径n3:返回上一层n); scanf(%d,&j); if(j=1) ADD_CITY(G); printf(添加完成!n); else if(j=2) p=(PathNode *)malloc(sizeof(PathNode); printf(请输入要添加的路径中第一个城市的名称n); gets(name); printf(请输入要添加的两个中第二个城市的名称n); gets(name1); printf(请输入要添加的路径的距离n); sc

39、anf(%d,p-adjcity); ADD_PATH(G,FindCity(G,name),FindCity(G,name1),*p); ADD_PATH(G,FindCity(G,name1),FindCity(G,name),*p); printf(添加完成!n); else break; break; case 5: CreatAdjList(G); printf(创建完成!n); break; default : return ; WriteAdjList(G); int dis(Graph *G,int left,int right) PathNode *p; p=G-listle

40、ft.firstpath; while(p) if(right=p-adjcity) return p-distance; p=p-nextpath; return INFINITY;void ShortestPath(Graph *G,int v0) int i,w,v,min,l=0; int finalMAX_CITIES;/Dijkstra tool for(v=0; vcities; v+) finalv=FALSE; Dv=dis(G,v0,v); for(w=0; wcities; w+) Pvw=FALSE; if(DvINFINITY) Pvv0=1; Pvw=1; Dv0=

41、0; finalv0=TRUE; for(i=1; icities; i+) min=INFINITY; for(w=0; wcities; w+) if(!finalw) if(Dwmin) v=w; min=Dw; finalv=TRUE; for(w=0; wcities; w+) if(!finalw&(min+dis(G,v,w)Dw) Dw=min+dis(G,v,w); strcpy(char*)Pw,(char *)Pv); Pwv=TRUE; void FindPath(Graph *G,int v) int i=0; for(i=0; iMAX_CITIES; i+) if

42、(Pvi=1) if(dis(G,v,i),G-);void Print(Graph *G,int v0) int i; PathNode *p,*pre; for(i=0; icities; i+) if(i!=v0) printf(%s到%s的最短距离为%d,路径如下:n,G-,G-,Di); printf(%s,G-); Piv0=0; Pii=0; FindPath(G,i); printf(%sn,G-); void Print2(Graph *G,int v1,int v2) p

43、rintf(%s到%s的最短距离为%d,路径如下:n,G-,G-,Dv2); printf(%s,G-); Pv2v1=0; Pv2v2=0; FindPath(G,v2); printf(%sn,G-);void Print3(Graph *G) int i;PathNode *p; for(i=0; icities; i+) p=G-listi.firstpath-nextpath; printf(|%-2d%-12s-%-12s%-3d|, i+1, G-, G-listG-lis

44、, G-listi.firstpath-distance); while(p) printf(-%-12s%-3d|, G-, p-distance); p=p-nextpath; printf(); putchar(10); void MODE_CLIENT(Graph *G) int i,j; int v0,v1,v2; char name120,name220,name20; while(1) menu(2); scanf(%d,&i); switch(i) case 1: printf(请输入城市的名

45、称:n); scanf(%s,name); v0=FindCity(G,name); if(v0=-1) printf(输入有误或者没有该城市!); break; ShortestPath(G,v0); Print(G,v0); break; case 3: printf(请输入第一个城市的名称:n); scanf(%s,name1); v1=FindCity(G,name1); printf(请输入第二个城市的名称:n); scanf(%s,name2); v2=FindCity(G,name2); if(v1=-1|v2=-1) printf(输入有误或者没有该城市!); break; S

46、hortestPath(G,v1); Print2(G,v1,v2); break; case 2: for(j=0; jcities; j+) ShortestPath(G,j); Print(G,j); break; case 4: Print3(G); getchar(); getchar(); break; default: return ; int main() Graph G; int password=123; initalize_graph(&G); ReadAdjList(&G); while(1) menu(0); scanf(%d,&password); if(passw

47、ord=123) MODE_ADMIN(&G); else if(password=0) return 0; else MODE_CLIENT(&G); return 0;运行结果插入城市函数测试:输入:TextCity03-1输出结果:添加完成!查看邻接表结果:删除城市函数测试:输入:LaSa输出结果:删除完成!查看邻接表结果对比:删除前:删除后:更新城市函数测试:略;修改城市函数测试:略;退出保存函数测试:略;单源多终点函数测试:输入:TextCity输出结果:单源单终点函数测试:输入:TextCityGuangzhou输出结果:输入有误或者没有该城市!输入:TextCityGuangZh

48、ou输出结果:TextCity到GuangZhou的最短距离为13,路径如下:TextCityBeiJingGuangZhou多源多终点函数测试:BeiJingShangHaiBeiJing到ZhengZhou的最短距离为5,路径如下:BeiJingHanDanZhengZhouBeiJing到XiAn的最短距离为5,路径如下:BeiJingXiAnBeiJing到WuHan的最短距离为7,路径如下:BeiJingHanDanWuHanBeiJing到GuangZhou的最短距离为10,路径如下:BeiJingGuangZhouBeiJing到ShenYang的最短距离为4,路径如下:BeiJingTianJinShenYangBeiJing到LaSa的最短距离为25,路径如下:B

温馨提示

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

评论

0/150

提交评论