数据结构上机报告模板_第1页
数据结构上机报告模板_第2页
数据结构上机报告模板_第3页
数据结构上机报告模板_第4页
数据结构上机报告模板_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构上机报告模板姓名:张婷性别:女学号:2xx0xx0xx00xx完成日期:2xx1年xx月xx日成绩:城市旅游设中国28个省会(包括自治区省会),4个直辖市,2个特别行政区,共 34个城市的铁路里程表见下图(下图下面的网页有更加清晰和详细的铁路里程数据)。现在要求输入任意两个城市名称,求出这两个城市的最近距离及经过的城市路线,以供旅游者查询。提示:测试数据可以是部分数据,而不必是全部。咕 f11 i二 r.Brc.吨 ?H Fl a- Ci =:3 :fCP- ;巾I Ji;1.ry?lf化H:-Fh 二丄::=?卜严 U 心:-H - .!: :|/ 1| 1 i. :/-|t.r/w

2、| lULC-D.ul-11軒-二;严ip n ,“I . - r 0UNl- I - r j.际.r*4l!?c.L 厲-.thillK 1-1 厚*巧常 药r .iWf- m! . F - I: na 鼻芒牡 TL wspH := 匕赴 urn:咔时 3:T-jTi- nlrt|?i .7,41材、沁!Ami 1*1 II.iuw SSH - J1口挖 * -Kl/j? :. ; U : 皿斗L:二工-mi 琢 Lvii dri (tkp :Ji k :Irtt mH-卩 irr Kff fl Cl.jiwipjj吩 me jmIE幻舄 lPf|1口i 91 ;肯 .:i八血訂iBE ei

3、 -w trtiI.B-U rM Ml 11-11 it!. Jh 咲:Hl IIIUH! IlllUP IXJr 7777 i/lll 4*Lr 严*3.kl潯厶夷应填弐叮L IT -V弗r込耳鮎H ji: :n旋A. 口条良上唾理W、全甘:3 的竖汗=S犬礼系壬询煙上2二以无歧义的陈述说明任务、强调完成的程序要做什么?明确规定:a.输入的形式和输入值的范围;城市以汉字字符输入,城市间距离以整形输入。b.输出的形式;输出的即为路径和以整形输出的所要走得最短路程。C.程序所能达到的功能;找出两个城市间的最短路程,以及经过的城市od.测试数据:P*、rzu3:s-n :- 巳9 Ellie电IS

4、aaa 43 厂叮 m:;:*? on 4翻和IT 髄;I u* 丈 西巴. _盘3 “ a 音2童 :WT - U算 法 描 述UBS In III Tsa:Lhuu . JI*-*/DLi: LJ.-I%T-MiT*Tnr* OiEbW T414:3r9i 二ill匕 li J- FWF注丨Q| ME/.I21匚i Jii-KH. -a.i . mJ i : V JE/a i.L i .:q ijrzv 斗眉= *3C-bF:cja_rj.3 IaUUXHSC |rii I 33U-uzj j : HUL4:二-卄 E iiii-LBTiHrai1冲Jh賈斤对TTi霰亀R单PBD+V t

5、- r-*4:r| 叶:- gr. : ilF:日& 呂 S J *= ;:? 口VBsrarj3 ij 型-IlOrn r耳 h伴 EGA.as a N H侖-F二H巨 丿粘ti iH- Ttr LrUAI岀占矶畀订-fl:ip-Ci存 II i ?*rrm 沢利円4j*i亦v4i I haft 1.jj CiWfLiW I ii:口二.nu LxL-hjhxm & 皿謀4矿-计1| l*rr 1v3 j/-nnis3Krl I I 3OrSHi )OOUZiCCMCU : fi|1 S J IHULAIWllru(,i4 M:iimrbi-y?-P ,:k iFi.mbuu.;LDft l

6、|,ri,二,ZZ,:EHTl*jfc.*E I ;iJ 1前:、:R:rcmzy 庞丹litBEPtmEiiMlv Jihrinriirtin-q):;Eett -lL : 3-: y .pfa*K_7:-R I莎FL赳Th詐41Ail*彌昵空1卢血II17 4I&LHd : I柯軾QDijkstra 算法: 计算到达的最短路径。nw审LLii翠I设svO = 1,其他si = 0,S集保存已访问过的点,并令源点为1dist数组保存最短路径信息循环n次在所有未访问的结点中,选出dist值最小的结点v标记结点v为sv=1;对于从 v 出发的所有边(v,y),且使得 distv = mindy,

7、 dv+dis(v,y) 概 要 设 计主程序 MyGraph.cpp中: LocateVex(G vex),定位点 vex.Create(G )用邻接矩阵建图Dijkstra Path(G begi n, dist, p ath计算并保存单源最短路。search(Gpath,begin,end)输出begin-end最短路径要经过的城市 数据结构类型:string vexs,用于记录城市的名称AdjMatrix arcs,用于保存两个城市之间的距离int Path,保存当前点的前一点int dist,保存源点到该点的最短路径int vexnum,arcnum,图的当前顶点数和弧数对每个操作写

8、出伪码算法;对主程序和其它模块也要写出伪码算法;画出 函数(或过程)的调用关系/定义结构typ edef struct stri ng vexsMAXN;Adj arcs;int vexnu m,arc num;Gra ph;/提取数据Graph *Create(Gra ph *G) int i,j,m, n; stri ng va,vb; G=new Graph; fstream fp(city.txt); fp(*G).vex num (*G).arc num; for(i=0;i(*G).vexsi;for(i=0;i(*G).vex num;+i) for(j=0;j(*G).vex

9、nu m;+j) (*G).arcsij=0;for(m=0;mvavb n; i=Locate(G,va); j=Locate(G,vb);(*G).arcsij=(*G).arcsji=n;fp.close(); return G;/查找路径void find(Graph *G ,int *path,int begin,int end) int queMAXN;int j,i=0,te mp; quei+=e nd; temp=p athe nd; while(te mp !=begi n) quei+=te mp; temp=p athte mp; quei=begi n; for(j=

10、i;j0;j-) cout(*G).vexsquej;cout(*G).vexsquej0;j-)cout(*G).vexsquej;cout(*G).vexsquejendl;#in clude #in clude #in clude #i nclude using n ames pace std;#defi ne INFINITY xx000#defi ne MAXN28int p athMAXN;int distMAXN;enu mFALSE,TRUE;typ edef int AdjMAXNMAXN; typ edef struct stri ng vexsMAXN;Adj arcs;

11、int vexnu m,arc num;顶点向量/邻接矩阵/图的当前顶点数和弧数Graph;int Locate(Graph *G ,string vex)int k=-1;for(i nt i=0;ivex nu m;i+) if(G-vexsi=vex) k=i;/顶点存在返回原位置,不存在时则返回-1/提取数据/顶点向量/初始化邻接矩阵/输出 Garcs.adjbreak;return k;Graph *Create(Gra ph *G)int i,j,m, n;stri ng va,vb;G=new Graph;fstream fp(city.txt);fp(*G).vex nu m(

12、*G).arc num; for(i=0;i(*G).vexsi;for(i=0;i(*G).vex num;+i) for(j=0;j(*G).vex nu m;+j) (*G).arcsij=0;for(m=0;mvavb n; i=Locate(G,va); j=Locate(G,vb);/无向网(*G).arcsij=(*G).arcsji=n;fp.close(); return G;void Dis play(Gra ph *G)int i,j;/ 输出 Gvexsfor(i=0;i(*G).vex nu m;+i) cout(*G).vexsisetw(6); cout(*G).

13、arcs:e ndl; for(i=0;ivex nu m;i+) for(j=0;jvex nu m;j+) coutsetw (6)arcsij; coute ndl;void Dijkstra(Graph *G ,int startPoint,int *dist,int *path) int s(*G).vex num;int i,v,m, n,min;for(i=0;i(*G).vex nu m;i+)si=0;disti=(*G).arcsstart Poi nti; if(disti=INFINITY) pathi=-1;v=n;sv=1;for( m=0;m(*G).vex nu

14、m ;m+)if(!sm&(*G).arcsvmINFINITY)if(distv+(*G).arcsvm)=distm) distm=mi n+(*G).arcsvm; p athm=v;else p athi=start Point;sstart Poi nt=1;diststart Poi nt=0; for(i=1;i(*G).vex nu m;i+) mi n=INFINITY;v=-1;for(n=0;n (*G).vex num; n+) if(!s n&dist n0;j-) cout(*G).vexsquej;cout(*G).vexsqueje ndl;void Search(Gra ph *G)stri ng start,e nd;int i,j;coutstart; coutend; i=Locate(G ,start);i=Locate(G ,en d);Dijkstra(G ,i,dist,path);cout最短路径为:endl; fin d(G, path,i,j);H.cout路程: coutdistje ndl;int mai n()Graph *G;G=Create(G);/Dis play(G);Search(G);system( p aus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论