数据结构交通指南系统Word文件下载.docx

上传人:b****6 文档编号:18272391 上传时间:2022-12-14 格式:DOCX 页数:3 大小:16.76KB
下载 相关 举报
数据结构交通指南系统Word文件下载.docx_第1页
第1页 / 共3页
数据结构交通指南系统Word文件下载.docx_第2页
第2页 / 共3页
数据结构交通指南系统Word文件下载.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构交通指南系统Word文件下载.docx

《数据结构交通指南系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构交通指南系统Word文件下载.docx(3页珍藏版)》请在冰豆网上搜索。

数据结构交通指南系统Word文件下载.docx

}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.收获与体会  这是一个实际应用题。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1