数据结构课程设计大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计大作业

130821班

题目最短路径问题

专业计算机科学与技术

学生姓名

学号******XX

指导教师唐国民

完成日期2014.11.25

湖州师院信息工程学院

目录

目录 (1)

最短路径问题 (2)

【内容摘要】 (2)

【关键字】 (2)

【Abstract】 (2)

【Key words】 (2)

实验内容概述 (1)

实验目的概述 (1)

解题思路的描述 (1)

源程序清单 (2)

程序调试及测试结果 (2)

结论 (7)

参考文献 (7)

最短路径问题

【内容摘要】

【关键字】最短路径图论 Floyd算法

【Abstract】

【Key words】Shortest path,Graph theory,Floyd algorithm

计算机科学与技术专业数据结构大作业

实验内容概述

这是一幅美国硅谷的简单地图。对于此图,请写出一个完整的程序,对于输入的起点和终点,输出它们之间的最短路径。

实验目的概述

在实际生活中诸如在运输路线、出外旅游路线、厂址选择等诸多方面都会有最短距离的应用。

本实验中的问题是求任意两点间最短距离的问题,而实验的目的是运用邻接矩阵解决图存储并解决在此结构情况下对矩阵中元素的扫描计算。其关键是怎样储存和计算。储存用的是邻接矩阵,而计算用的是弗洛伊德算法。通过该实验更好地体会并进一步认识邻接矩阵,知道弗洛伊德算法在解决任意两点之间最短距离问题方面上的优势。

解题思路的描述

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

源程序清单

#include

#include

#include

using namespace std;

#define N 99999

#define MAXVEX 20

struct node

{

int num;

string name;

}numbers[17];

void Floyed(int cost[][MAXVEX],int n,int m,int x)

{

int A[MAXVEX][MAXVEX],path[MAXVEX][MAXVEX];

int i,j,k,pre;

for(i=0;i

for(j=0;j

{

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

path[i][j]=-1;

}

for(k=0;k

{

for(i=0;i

for(j=0;j

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)

{

if(m!=x)

cout << "该路径不存在\n" << endl;

}

else

{

cout << "最短路径长度是:" << A[m][x] << "米\n";

cout << "具体路径为:" << numbers[m].name << "----";

pre=path[m][x];

while(pre!=-1)

{

cout<

pre=path[pre][x];

}

cout<

}

}

}

int main(void)

{

int i,k,l,x;;

cout << " 美国硅谷地图最短路线查询表" << endl;

cout << "-----序号-------地点名称------" << endl;

cout << " 0 San Rapheal " << endl;

cout << " 1 Cross " << endl;

cout << " 2 Daly Cit " << endl;

cout << " 3 San Francisco " << endl;

cout << " 4 Oakland " << endl;

cout << " 5 San Larenzo " << endl;

cout << " 6 Cross B " << endl;

cout << " 7 San Maleo " << endl;

cout << " 8 Hayward " << endl;

cout << " 9 Dubin " << endl;

cout << " 10 Redwood City " << endl;

cout << " 11 Cross C " << endl;

cout << " 12 Palo Also " << endl;

相关文档
最新文档