77范文网 - 专业文章范例文档资料分享平台

全国铁路运输网最佳经由问题数据结构课程设计1(6)

来源:网络收集 时间:2019-01-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

outfile.close();

// cout<<\// cout<<\cout<<\成功添加新的线路\

cout<<\新建线路的序号 :\}

void floyed() //弗洛伊德算法 {

int i,j,k,m;

//包含着count 和path[]用来存储经过的路径 // for(i=0;i<=view_count;i++) // for(j=0;j<=view_count;j++)

// dist_list[i][j]=MAXCOST;//先对任意两点的距离初始值为无穷 for(int t=0;t<=way_count;t++) {

i=ways[t].station1; j=ways[t].station2;

dist_list[i][j]=ways[t].dist;//把文件中的数据付给dist_list[i][j]=ways[t].dist;形式 }

for(i=0;i<=view_count;i++) {

for(j=0;j<=view_count;j++) {

if(i==j) //车站到本车站的距离赋值为零 {

dist_list[i][j]=0; continue; }

dist_list[i][j]=-1; //先设置任意两点之间的距离为-1..表示这两点不通 path_list[i][j].count=0; //先设置任意两点之间的的路径的车站数为零 for(k=0;k

if(ways[k].station1==i&&ways[k].station2==j) {

dist_list[i][j]=ways[k].dist; path_list[i][j].count=2; path_list[i][j].path[0]=i; path_list[i][j].path[1]=j; break; } }

} }

//下面是计算最短路径的代码 for(k=0;k<=view_count;k++) {

for(i=0;i<=view_count;i++) for(j=0;j<=view_count;j++) {

if(i==k||j==k||i==j) //三个站中至两个站是相同的的话就是继续循环 continue;

if(dist_list[i][k]==-1||dist_list[k][j]==-1) //i、k 不通或者k、j 不通继续循环

continue;

if((dist_list[i][j]==-1)||((dist_list[i][j] != -1)&&(dist_list[i][k]+dist_list[k][j]

{ //i、j 不通..或者是i、j 通但是不是最短路径..执行下面语句

dist_list[i][j]=dist_list[i][k]+dist_list[k][j]; //求出i、j 的最短距离

//shortest[i][j]=shortest[i][k]+shortest[k][j];

path_list[i][j].count=path_list[i][k].count+path_list[k][j].count-1; //求出i、j 路径的站的个数

//path_list[i][j]=k;

for(m=0;m

path_list[i][j].path[m]=path_list[i][k].path[m]; for(m=0;m

path_list[i][j].path[m+path_list[i][k].count]=path_list[k][j].path[m+1]; } } } }

void shortest_path() {

floyed(); int i,k,m;

int start_num=-1,end_num=-1;

string start_station,end_station;//定义起始站、终点站 //下面便是输出最短经由路径的代码 cout<<\

//cout<<\cout<<\所有城市列表:\\n\

for(i=0;i

cout<

cout<

cout<

//cout<<\cout<<\请输入起点站名称:\cin>>start_station;

for(i=0;i

if(start_station==views[i].name) start_num=i; }

while(start_num==-1) //容错处理 {

cout<<\你的输入有误..请重新输入..\

//cout<<\cout<<\请输入起点站名称:\cin>>start_station;

for(i=0;i

if(start_station==views[i].name) start_num=i; } }

//cout<<\cout<<\请输入终点站的名称:\cin>>end_station;

for(i=0;i

if(end_station==views[i].name) end_num=i; }

while(end_num==-1) //容错处理 {

cout<<\你的输入有误..请重新输入..\//cout<<\cout<<\请输入终点站的名称:\cin>>end_station;

for(i=0;i

{

if(end_station==views[i].name) end_num=i; } }

cout<

cout<<\从 \到 \输出最短经由路径

if(dist_list[start_num+1][end_num+1]==-1) //没有找到的情况的回应 cout<<\else {

//cout<<\distance is \and path is:\

cout<<\距离是 \最短路径:\k=path_list[start_num+1][end_num+1].path[0]-1; cout<

for(m=1;m

k=path_list[start_num+1][end_num+1].path[m]-1; cout<<\} }

cout<

void adddata(int menu) {

if(menu==1) {

while(1) {

addview();

cout<>con; if(con=='y'); else break; } }

if(menu==2) {

while(1) {

addline(); addway();

cout<>con; if(con=='y'); else break; } } }

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库全国铁路运输网最佳经由问题数据结构课程设计1(6)在线全文阅读。

全国铁路运输网最佳经由问题数据结构课程设计1(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/403053.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: