数据结构校园导游程序附源码Word文档格式.docx
- 文档编号:14510218
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:13
- 大小:139.22KB
数据结构校园导游程序附源码Word文档格式.docx
《数据结构校园导游程序附源码Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构校园导游程序附源码Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
iostream>
string>
//图的邻接矩阵存储表示
#defineMaxInt32767//极大值
#defineMVNum100//最大顶点数//顶点类型为字符型
typedefintArcType;
//边的权值为整型
usingnamespacestd;
inti,j;
intS[100],D[100],min,Path[100];
intN=49;
intbestcost=MaxInt;
//记录目前最少运费或代价
intcurrentcost;
//当前运费或代价
intcurrent[MaxInt];
//当前路径
intbest[MaxInt];
//记录最佳路径
structAMGraphd
{
stringvexs[MVNum];
//顶点表
intarcs[MVNum][MVNum];
//邻接矩阵
intvexnum;
//图的当前点数
intarcnum;
//边数
stringinfo[MVNum];
//景点介绍
}G;
主函数调用其它函数
4.详细设计
#defineMaxInt32767//极大值
//边的权值为整型
//-------------------------------------------------
voidswap(int&
a,int&
b)
inttemp=a;
a=b;
b=temp;
}
voidbacktrack(intt)//其实就是一个排列问题。
。
intj;
if(t==N)//到了最后一层。
{
if(G.arcs[current[t-1]][current[t]]+G.arcs[current[t]][1]+currentcost<
bestcost)
{
bestcost=G.arcs[current[t-1]][current[t]]+G.arcs[current[t]][1]+currentcost;
for(j=1;
j<
=N;
j++)
{
best[j]=current[j];
}
}
}
for(j=t;
j++)//排列。
swap(current[t],current[j]);
if(G.arcs[current[t-1]][current[t]]+currentcost<
//其实currentcost就是包括了1-->
(t-1)的代价或运费
currentcost+=G.arcs[current[t-1]][current[t]];
backtrack(t+1);
//递归回溯
currentcost-=G.arcs[current[t-1]][current[t]];
//-------------------------------------------
voidall()
inti;
for(i=1;
i<
i++)
current[i]=i;
backtrack
(2);
//树的第一层已经找到了,所以从第二层开始
cout<
<
"
最少的运费为:
"
<
bestcost<
endl;
最佳路径为:
;
cout<
best[i]<
->
best[1]<
//顶点定位
intLocateVex(AMGraphdG,stringu)
inti=0;
while(G.vexs[i]!
=u)i++;
returni;
intCreateUD(AMGraphd&
G)
G.vexs[0]="
正门"
G.info[0]="
学校正门"
G.vexs[1]="
二教"
G.info[1]="
学校的第二教学楼"
G.vexs[2]="
一教"
G.info[2]="
学校的第一教学楼"
G.vexs[3]="
四教"
G.info[3]="
学校的第四教学楼,苏式建筑"
G.vexs[4]="
校医院"
G.info[4]="
学生就医的地方,现已搬迁"
G.vexs[5]="
春晖楼"
G.info[5]="
学校办公场所"
G.vexs[6]="
三教"
G.info[6]="
第三教学楼,阶梯教室"
G.vexs[7]="
沁园"
G.info[7]="
有喷泉、小广场和一个世纪钟"
G.vexs[8]="
翠园"
G.info[8]="
与沁园相望,有比较多的植物"
G.vexs[9]="
大礼堂"
G.info[9]="
学校大礼堂,晚会、话剧等节目的表演场所"
G.vexs[10]="
泽园"
G.info[10]="
学校一景,有个凉亭"
G.vexs[11]="
综餐"
G.info[11]="
综合餐厅,有两层,消费水平较高"
G.vexs[12]="
体育馆"
G.info[12]="
室内运动场所"
G.vexs[13]="
图书馆"
G.info[13]="
学校图书馆,有五层书库,自习室,电子阅览室等"
G.vexs[14]="
信息楼"
G.info[14]="
信息科学与技术学院,学院楼不大"
G.vexs[15]="
五教"
G.info[15]="
第五教学楼,苏式建筑"
G.vexs[16]="
基教"
G.info[16]="
新建的基础教学楼,18层和地下两层,环境比较好"
G.vexs[17]="
4/5/7/8栋"
G.info[17]="
学生宿舍"
G.vexs[18]="
学二"
G.info[18]="
学二餐厅,上下两层"
G.vexs[19]="
游泳馆"
G.info[19]="
学校游泳馆,收费的"
G.vexs[20]="
三实验楼"
G.info[20]="
第三实验楼"
G.vexs[21]="
超市"
G.info[21]="
学校超市,银行都在这"
G.vexs[22]="
九栋"
G.info[22]="
最大的学生宿舍楼"
G.vexs[23]="
学一"
G.info[23]="
学一餐厅,地上两层,地下一层,共三层"
G.vexs[24]="
西操"
G.info[24]="
学校西边的操场,塑胶操场,比较大"
G.vexs[25]="
机械楼"
G.info[25]="
机械学院的楼"
G.vexs[26]="
九实验楼"
G.info[26]="
第九实验楼,主要是计算机上机"
G.vexs[27]="
交通楼"
G.info[27]="
交通学院的楼"
G.vexs[28]="
1栋"
G.info[28]="
学生第一宿舍楼"
G.vexs[29]="
10/11栋"
G.info[29]="
G.vexs[30]="
土木楼"
G.info[30]="
土木学院的楼"
G.vexs[31]="
招待所"
铁道大学的招待所"
G.vexnum=32;
G.arcnum=49;
for(i=0;
G.vexnum;
++i)//权值初始化为最大值
for(j=0;
G.arcnum;
++j)
G.arcs[i][j]=MaxInt;
G.arcs[0][2]=1;
G.arcs[1][2]=2;
G.arcs[1][6]=1;
G.arcs[2][7]=1;
G.arcs[2][3]=2;
G.arcs[3][8]=1;
G.arcs[3][4]=1;
G.arcs[4][9]=1;
G.arcs[4][5]=3;
G.arcs[5][10]=1;
G.arcs[2][0]=1;
G.arcs[2][1]=2;
G.arcs[6][1]=1;
G.arcs[7][2]=1;
G.arcs[3][2]=2;
G.arcs[8][3]=1;
G.arcs[4][3]=1;
G.arcs[9][4]=1;
G.arcs[5][4]=3;
G.arcs[10][5]=1;
G.arcs[6][7]=2;
G.arcs[6][12]=1;
G.arc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 校园 导游 程序 源码