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

数据结构课程设计—城市道路交通咨询系统 doc 

来源:用户分享 时间:2025/6/2 16:27:17 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

4.总结

通过这次数据结构课程设计,我对《数据结构》这门课程有了更深一步的了解,使我对《数据结构》这门课程掌握以及运用更加灵活。同时也让我发现了自己在这门课上的不足与缺陷,同时也明确了自己在以后的类似课程中的具体学习方法。

这次在应用中,我发现了自己的很多不足,在编写城市交通咨询系统的过程中,自己C语言方面的只是掌握太少,很多功能需求只能退而求其次,一次又一次的更改,一次又一次的失败,也终于是在最后也完成了自己的要求,同时我也知道了平时用功学习的重要性。尤其是在日常学习之中,对于单一的只是点也许掌握的还不错,但是自己动手太少,实践经验严重不足,且面临课程设计之时,要求多方面的只是结和编码,对于我而言还是有很大的难度的。如此次对于邻接矩阵的存储于读取,以及最短路径算法的实现,两个及其重要的算法,狄克斯特拉算法和佛洛依德算法,在具体的应用上还是有很多不足。

通过此次课程设计,我也明白了对于一个完成的程序而言,想要完成它最重要的代码,最初,也是最为重要的一个部分就是算法思想,以及具体程序功能规划,只有最重要的地基部分完美实现,才可以进行接下来的具体代码编程,以及更多细节上的完美。

通过这次的课程设计我有懂得了好多数据结构的知识,以前上课没有听的,不知道的,这次都有所了解了,像有向图的构建,弗洛伊德算法,迪克斯特拉算法。这些知识从曾经的听说到现在的了解,进了一大步。不但如此,这次的课设也是我感觉到了数据结构的强大与神奇。渐渐的爱上他了。不仅让我了解了数据结构更加深了对它与C语言的联系的理解。

因为自己的不学习,导致这次的课设变得如此的艰难。且因为自己生病住院也更是浪费了很大的时间,对于我自己做课程设计的时间就少的可怜,这也无疑是对我更大的挑战。在临近答辩,我的代码才基本完成,夜以继日的努力也终于是让我完成

5.致谢

本次课程设计我遇到了极大的问题,不管是时间方面还是内容方面,自己都显得慌乱过,我能够完成本次课程设计也完全感谢舍友的支持与帮助,在难点上能够对我进行帮助。尤其感谢我的知道老师张老师。感谢她在百忙之中抽出时间

来为我解答疑惑,解决问题,她对我此次的课程设计有极大的帮助。再次感谢张老师。课程设计马上结束,同时也谢谢所有的负责老师,谢谢她们这几天对我们的付出,老师辛苦了。

6.附录

#include #include

#define MVNum 100//最大顶点数 #define Maxint 32767 enum boolean{FALSE,TRUE}; typedef char VertexType; typedef int Adjmatrix; typedef struct{

VertexType vexs[MVNum];//顶点数组,类型假定为char

Adjmatrix arcs[MVNum][MVNum];//邻接矩阵,类型假定为int型 }MGraph;

int D1[MVNum],P1[MVNum];

int D[MVNum][MVNum],P[MVNum][MVNum]; /*建立有向图的储存结构*/

void CreateMGraph(MGraph * G,int n,int e)

{//采用邻接矩阵表示法构造有向图G,n、e表示图的当前顶点数和边数 int i,j,k,w;

for(i=1;i<=n;i++)//输入顶点信息 G->vexs[i]=(char)i; for(i=1;i<=n;i++) for(j=1;j<=n;j++)

G->arcs[i][j]=Maxint;//初始化邻接矩阵

printf(\ === 输入%d条边人(i起点)、(j终点)及w(路径长度):\\n\ for(k=1;k<=e;k++)//读入e条边,建立邻接矩阵 { printf(\ ===\ scanf(\

G->arcs[i][j]=w;

}

printf(\ === 有向图人存储结构建立完毕! ===\\n\ }

/*迪杰斯特拉算法*/

void Dijkstra(MGraph *G,int v1,int n)

{//利用迪杰斯特拉算法,求出有向图G的v1顶点到其他顶点v 的最短路径P[v]及权D[v] int D2[MVNum],P2[MVNum]; int v,i,w,min;

enum boolean S[MVNum]; for(v=1;v<=n;v++)//初始化S和D {

S[v]=FALSE;//置空最短路径终点集 D2[v]=G->arcs[v1][v];//置初始的最短路径值 if(D2[v]

P2[v]=v1;//v1是v的前趋(双亲) else

P2[v]=0;//v无前趋(双亲) }

D2[v1]=0;S[v1]=TRUE;//S集初始时只有源点,距离为0 for(i=2;i

min=Maxint; for(w=1;w<=n;w++) if(!S[w] && D2[w]

{ v=w;min=D2[w]; }//w顶点离v1顶点更近 S[v]=TRUE;

for(w=1;w<=n;w++)//更新当前最短路径及距离 if(!S[w]&&(D2[v]+G->arcs[v][w]arcs[v][w]; P2[w]=v; } }

printf(\ === 路径长度,路径 ===\\n\ for(i=1;i<=n;i++)

{ printf(\ === ]\ printf(\ while(v!=0) {printf(\-%d\ v=P2[v];} printf(\ } }

/*费洛伊德算法*/

void Floyd(MGraph *G,int n)

{//利用费洛伊德算法,求出最短路径 int i,j,k; for(i=1;i<=n;i++) for(j=1;j<=n;j++) {

if(G->arcs[i][j]!=Maxint) P[i][j]=j; else P[i][j]=0;

D[i][j]=G->arcs[i][j]; }

for(k=1;k<=n;k++) {

for(i=1;i<=n;i++) for(j=1;j<=n;j++)

{ if(D[i][k]+D[k][j]

D[i][j]=D[i][k]+D[k][j]; P[i][j]=P[i][k]; } } } }

void main()

{

printf(\ ***********欢迎使用城市交通咨询系统**********\\n\

printf(\

printf(\

=============================================\\n\ MGraph *G; int n,e,v,w,k; int xz=1;

G=(MGraph *)malloc(sizeof(MGraph));

printf(\ === 输入城市个数和路径个数n,e: \ scanf(\

CreateMGraph(G,n,e);//建立图的存储结构 while(xz!=0) {

printf(\ **************求城市之间的最短距离*************\\n\ printf(\ ===============================================\\n\ printf(\ =======1.求一个城市到所有城市的最短距离========\\n\ printf(\ =======2.求任意的两个城市之间的最短距离========\\n\ printf(\ ===============================================\\n\ printf(\ printf(\

printf(\ ======请选择:1或2,选择0 退出: \ scanf(\ %d\ if(xz==2) {

Floyd(G,n);////调用费洛伊德算法

printf(\ =============================================\\n\ printf(\ =======输入源点和终点:v,w: \ scanf(\ k=P[v][w]; if(k==0)

printf(\ =====顶点 %d 到 %d 无路径!==================\\n\ else {

printf(\ =====从顶点 %d 到 %d 最短路径是 %d \ while(k!=w) {

printf(\->%d\

k=P[k][w];//k为v的后继顶点 }

printf(\->%d\\n\输出后继顶点

printf(\ ======路径长度:%d ===\\n\ } } else if(xz==1) {

printf(\ ===============求单源路径,输入源点v: \ scanf(\

Dijkstra(G,v,n);//调用迪杰斯特拉算法 } }

printf(\ ***************结束求最短路径,再见*****************\\n\ }

数据结构课程设计—城市道路交通咨询系统 doc .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c342m53ddqx4yj364q360565jb3urvy0110f_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top