数据结构课程设计大作业文档格式.docx

上传人:b****6 文档编号:20532699 上传时间:2023-01-23 格式:DOCX 页数:8 大小:235.20KB
下载 相关 举报
数据结构课程设计大作业文档格式.docx_第1页
第1页 / 共8页
数据结构课程设计大作业文档格式.docx_第2页
第2页 / 共8页
数据结构课程设计大作业文档格式.docx_第3页
第3页 / 共8页
数据结构课程设计大作业文档格式.docx_第4页
第4页 / 共8页
数据结构课程设计大作业文档格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

数据结构课程设计大作业文档格式.docx

《数据结构课程设计大作业文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计大作业文档格式.docx(8页珍藏版)》请在冰豆网上搜索。

数据结构课程设计大作业文档格式.docx

其关键是怎样储存和计算。

储存用的是邻接矩阵,而计算用的是弗洛伊德算法。

通过该实验更好地体会并进一步认识邻接矩阵,知道弗洛伊德算法在解决任意两点之间最短距离问题方面上的优势。

解题思路的描述

本题是求美国硅谷中任意两点之间的最短距离,由于题意是求任意两点之间的最短路径首先考虑到弗洛伊德算法,并且需要使用邻接矩阵来解决存储问题。

 

源程序清单

#include<

iostream>

cstdio>

cstring>

usingnamespacestd;

#defineN99999

#defineMAXVEX20

structnode

{

intnum;

stringname;

}numbers[17];

voidFloyed(intcost[][MAXVEX],intn,intm,intx)

intA[MAXVEX][MAXVEX],path[MAXVEX][MAXVEX];

inti,j,k,pre;

for(i=0;

i<

n;

i++)

for(j=0;

j<

j++)

{

A[i][j]=cost[i][j];

path[i][j]=-1;

}

for(k=0;

k<

k++)

if(A[i][j]>

(A[i][k]+A[k][j]))

A[i][j]=A[i][k]+A[k][j];

path[i][j]=k;

if(m!

=x)

cout<

<

numbers[m].name<

"

--->

<

numbers[x].name<

;

if(A[m][x]==N)

该路径不存在\n"

endl;

else

最短路径长度是:

"

A[m][x]<

米\n"

具体路径为:

----"

pre=path[m][x];

while(pre!

=-1)

cout<

numbers[pre].name<

pre=path[pre][x];

numbers[x].name<

endl;

}

intmain(void)

inti,k,l,x;

美国硅谷地图最短路线查询表"

-----序号-------地点名称------"

0SanRapheal"

1Cross"

2DalyCit"

3SanFrancisco"

4Oakland"

5SanLarenzo"

6CrossB"

7SanMaleo"

8Hayward"

9Dubin"

10RedwoodCity"

11CrossC"

12PaloAlso"

13Freemood"

14MinView"

15Cupertin"

16SanJose"

numbers[0].num=0;

numbers[0].name="

SanRapheal"

numbers[1].num=1;

numbers[1].name="

Cross"

numbers[2].num=2;

numbers[2].name="

DalyCit"

numbers[3].num=3;

numbers[3].name="

SanFrancisco"

numbers[4].num=4;

numbers[4].name="

Oakland"

numbers[5].num=5;

numbers[5].name="

SanLarenzo"

numbers[6].num=6;

numbers[6].name="

CrossB"

numbers[7].num=7;

numbers[7].name="

SanMaleo"

numbers[8].num=8;

numbers[8].name="

Hayward"

numbers[9].num=9;

numbers[9].name="

Dubin"

numbers[10].num=10;

numbers[10].name="

RedwoodCity"

numbers[11].num=11;

numbers[11].name="

CrossC"

numbers[12].num=12;

numbers[12].name="

PaloAlso"

numbers[13].num=13;

numbers[13].name="

Freemood"

numbers[14].num=14;

numbers[14].name="

MinView"

numbers[15].num=15;

numbers[15].name="

Cupertin"

numbers[16].num=16;

numbers[16].name="

SanJose"

输入你要查询的起始地点的序号:

cin>

>

k;

k<

\t"

numbers[k].name<

输入你要查询的终止地点的序号:

cin>

x;

x<

以下是从"

出发到"

的最短路径:

endl;

intcost[17][MAXVEX]=

{0,12,N,N,18,N,N,N,N,N,N,N,N,N,N,N,N},

{12,0,3,3,N,N,N,N,N,N,N,N,N,N,N,N,N},

{N,3,0,4,N,N,19,N,N,N,N,N,N,N,N,N,N},

{N,3,4,0,7,N,N,21,N,N,N,N,N,N,N,N,N},

{18,N,N,7,0,N,N,N,N,31,N,N,N,N,N,N,N},

{N,N,N,N,N,0,N,N,N,12,N,N,N,N,N,N,N},

{N,N,19,N,N,N,0,4,N,N,N,7,N,N,N,N,N},

{N,N,N,21,N,N,4,0,13,N,6,N,N,N,N,N,N},

{N,N,N,N,N,N,N,13,0,N,N,N,N,9,N,N,N},

{N,N,N,N,31,12,N,N,N,0,N,N,N,N,N,N,35},

{N,N,N,N,N,N,N,6,N,N,0,5,6,N,N,N,N},

{N,N,N,N,N,N,7,N,N,N,5,0,N,N,N,14,N},

{N,N,N,N,N,N,N,N,N,N,6,N,0,9,6,N,N},

{N,N,N,N,N,N,N,N,9,N,N,N,9,0,N,N,24},

{N,N,N,N,N,N,N,N,N,N,N,N,6,N,0,6,8},

{N,N,N,N,N,N,N,N,N,N,N,14,N,N,6,0,7},

{N,N,N,N,N,N,N,N,N,35,N,N,N,24,8,7,0},

};

Floyed(cost,17,k,x);

return0;

程序调试及测试结果

图1程序调试过程截图

图2程序调试过程截图

图3程序调试过程截图

图4程序测试结果截图

结论

本题目所涉及的问题主要是算法和存储结构的选择两个方面。

算法采用弗洛伊德算法,运用邻接矩阵解决存储问题并解决在此结构情况下对矩阵中元素的扫描计算。

参考文献

1.《数学实验》傅鹂龚劬刘琼荪何中市科学出版社

2.《数据结构教程C语言版》张绍民李淑华中国电力出版社

3.《数据结构实验教程C语言版》王国钧唐国民清华大学出版社

4.《数据结构与算法》陈文博朱青机械工业出版社

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

当前位置:首页 > 经管营销 > 企业管理

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

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