数据结构交通指南系统Word文件下载.docx
- 文档编号:18272391
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:3
- 大小:16.76KB
数据结构交通指南系统Word文件下载.docx
《数据结构交通指南系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构交通指南系统Word文件下载.docx(3页珍藏版)》请在冰豆网上搜索。
}edgenode;
typedefstruct {charvtx;
edgenode*link;
}vexnode;
typedefvexnodeGraph[n];
;
voidFloyd(GraphG,floatA[n][n],intp[n][n]){inti,j,k;
for(i=0;
i for(k=0;
k if(A[i][k]+A[k][j] A[i][j]=A[i][k]+A[k][j];
}} 算法提示 采用任意两点最短路径的相关算法。
4.算法设计 结点类型:
structArcCell{ intadj;
//存放弧长 bool*info;
//是否用过该弧};
struct_MGraph{ charvexs[20];
//存放站点ArcCellarcs[20][20];
//intvexnum;
intarcnum;
};
类定义:
classMGraph //没用私有成员{ public:
_MGraphmgraph;
// voidDestroyGraph();
//析构函数销毁图 intLocateVex(charu);
//返回顶点在图中的位置boolCreateDN();
//构造有向网voidShortestPath_FLOYD(Path&
P,Distanc&
D);
构造有向网:
boolMGraph:
:
CreateDN()//构造有向网{ inti,j,w;
charv1,v2;
cout cin>
>
;
cout for(i=0;
i>
[i];
} for(i=0;
i for(i=0;
v1>
v2>
w;
intm=LocateVex(v1);
intn=LocateVex(v2);
[m][n].adj=w;
//的权值 } returntrue;
} 销毁有向图:
voidMGraph:
DestroyGraph(){ for(inti=0;
i 定位点:
intMGraph:
LocateVex(charu){ for(inti=0;
i return-1;
} 最短路径 voidMGraph:
ShortestPath_FLOYD(Path&
D)//求每对顶点间的最短路径 //用Floyd算法求有向网G中各对顶点v和w之间的最短路径P[v][w]及其带权长度D[v][w] //若P[v][w][u]为TRUE,则u是从v到w当前求得最短路径上的顶点。
{ intu,v,w,i;
for(v=0;
v }} for(u=0;
u P[v][w][i]=P[v][u][i]||P[u][w][i];
//从v到w的路径经过从v到u和从u到w的所有路径
} } } } } 5.源代码 #includeusingnamespacestd;
structArcCell{intadj;
typedefintPath[20][20][20];
typedefintDistanc[20][20];
_MGraphmgraph;
//voidDestroyGraph();
//析构函数销毁图intLocateVex(charu);
CreateDN()//构造有向网{inti,j,w;
cout>
cout>
}for(i=0;
//的权值 } returntrue;
} voidMGraph:
DestroyGraph(){for(inti=0;
i } intMGraph:
LocateVex(charu){for(inti=0;
i voidMGraph:
D)//求每对顶点间的最短路径//用Floyd算法求有向网G中各对顶点v和w之间的最短路径P[v][w]及其带权长度D[v][w] //若P[v][w][u]为TRUE,则u是从v到w当前求得最短路径上的顶点。
{intu,v,w,i;
for(v=0;
v P[v][w][i]=P[v][u][i]||P[u][w][i];
//从v到w的路径经过从v到u和从u到w的所有路径 } }}}} voidmain(){ MGraphg;
Pathp;
//3维数组Distancd;
//2维数组ints,t,k;
charv1,v2;
floatsum=0;
cout cout>
v2;
s=(v1);
t=(v2);
_FLOYD(p,d);
if(s!
=t) { inta=s;
cout cout 6.举例测试及运行结果例:
10B20A1515C2030D 7.收获与体会 这是一个实际应用题。
本实验的核心代码是用FLOYD算法求有向网G中各对顶点v和w之间的最短路径P[v][w]及其带权长度D[v][w],其中利用到了一些稍许繁琐的数据存储结构。
通过本实验,我觉得熟练掌握所学的算法对于编程解决实际问题非常有效。
我们应该在平时多用我们所学的数据结构知识编写程序,尝试解决实际的问题。
刚开始的时候,根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。
通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。
这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。
越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下功夫很多东西都是可以完成的。
数据结构这门课程更加注重设计灵活、巧妙的算法,提高程序运行效率,这对我逻辑思维能力的提高有相当大的帮助。
虽然这学期学完了这门课程,但我在以后的学习中不会放下数据结构,而是经常回顾温习,并多从生活中寻找和发现问题,进而尝试用数据结构的知识设计算法,并进行简单的实现。
相信这样的积累过程对我今后的学习生活大有帮助,让我受益终生。
7.收获与体会 这是一个实际应用题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 交通 指南 系统