- 0
- 0
- 约4.4千字
- 约 7页
- 2019-12-16 发布于广东
- 举报
西南交通大学
数据结构课程设计
学院:信息科学与技术学院
专业:计算机科学与技术 班级:计科4班
姓名:李娜
学号(-) 相关函数
首先创建CreatUDN()函数生成一个拥有25个城市,30条公路的交通图,并 录入两城市之间的权值即距离,其中顶点对应于城市,边对应于城市间直接通路,根 据实际问题,在生成的交通图中所有的通路都是双向的,即如果A城市到B城市有直 接通路,且里程为k千米,则B城市到A城市也有直接通路,并且里程同样为k千米。 创建对话框提示用户输入发出城市和终到城市的序号,再调用ShortestPath( 数求岀 最短路径,由Output()函数输出结果。
ShortestPath()利用了数据结构中图论中的最短路径相关的弗洛伊德算法。 Output()函数把计算的结果格式化输出。
(二)对于带有权值的网络图求解最小路径问题,一般有两种算法:迪杰斯特拉和弗 洛伊德算法,前者是求解单源最短路径问题,后者是求全源最短路径问题。就本程序 而言用迪杰斯特拉比较简单,因而釆用前者。
(三)具体实现
CreatUDN()函数生成一首先通过个拥有25个城市,30条公路的交通图 根据用户输入的顶点数和边数生成一个相应的交通图,其屮顶点对应于城市,边对应 于城市间直接通路。
void CreateUDN(v,a) /*造图函数 向图*/
int v,a;构造无图
{ int i,j;
G.vexnum=v;
G.arcnum=a;
for(i=0;iG.vexnum;++i) G.vex[i].number=i;
/*下边是城市名*/
Gvex[0].city=M 乌鲁木齐”;
G. vex [11] .city=郑州”;
Gvex[24].city=深圳”;
八这里把所有的边假定为20000,含义是城市间不可到达勺
for(i=0;iG.vexnum;++i)
for(j=0;jG.vexnum;++j)
Garcs[i]|j].adj=20000;
/*下边是可直接到达的城市间的距离,由于两个城市间距离是互相的, 所以要对图中对称的边同吋赋值。*/
G.arcs[0][2].adj=G.arcs[2][0].adj=1892;
G.arcs[l]⑵.adj=G.arcs[2] [l].adj=216;
G.arcs[18][19].adj=G.arcs[19][18].adj=367;
Garcs[19][20|.adj=G.arcs[20][19].adj=622;
? ? ?
G.arcs[10][ll].adj=G.arcs[ll][10].adj=511;
G.arcs[ll][l2].adj=G.arcs[12][l l].adj=349;
调用narrate ()函数输出提示信息,提示用户输入发出城市和终到城市的 序号:narrate ()函数把能够进行计算的城市列表按简单的格式进行输出 void narrate() /*说明函数*/
int i,k=0;
欢迎使用最优交通路径程制作人李娜
欢迎使用最优交通路径程
制作人李娜\n”);
序 I*************** \十)?
printf(H\n
printf(H\n城市列表如下:\n\n);
for(i=0;i25;i++)
printf(” (%2d)%?10s”,i,Gvex[i].city);/* 输出城市列表 */ k=k+l;
if(k%4==0) printf(H\nH);
}
用ShortestPath()函数求出最短路径具体功能实现及相应的迪杰斯特拉算法 为了便于ShortestPathO函数的计算,在生成的交通图中所有的通路都是双向的,即 如果A城市到B城市有直接通路,且里程为k千米,则B城市到A城市也有直接通路, 并且里程同样为k千米。
void ShortestPath(num) /*最短路径函数 可以查询距离最近的点*/
int num;
int v, w, i, t;
int final [25]; AfInal成员变量表示常量,只能被赋值一次,赋值后值不再改变。
int min;
for (v=0;v25;++v)
{
final[v]=0;D[v]=G. arcs[num][v].adj;
for(w=0;w25;++w) P[v][w]=0;
if(D[v]20000) {P[v][num]=l;P[v][v]=l;}
}
D[num]二0;final[num]=l;
for(i=0;i25;++i)
{
in in二20000;
for (w=0;w25;++w)
if(!final[w])
if(D[w]min){v=w;min=D[w];}
final[v]=l;
for (w=0;w25;++w)
您可能关注的文档
- 西方基础设施建设全面落后中国.docx
- 西方经济学奉贤区作业一.docx
- 西方经济学宏观知识点整理全.docx
- 西方经济学基础.docx
- 西方经济学流派课程设计.docx
- 西方经济学下作业.docx
- 西方美术经典赏结课作业.docx
- 西方美术史报告.docx
- 西方人文精神的起源与发展.docx
- 西方思想经典导读翻译.docx
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- UCM轧机的设计原理及其弯辊横移装置的设计.pdf VIP
- 苏教版六年级下册数学 圆柱的体积 教案(教学设计).docx VIP
- 武汉市2024年中考:《物理》考试真题与参考答案.pdf VIP
- 2023年湖北省武汉市中考物理真题卷(含答案与解析).pdf VIP
- 单机架UCM轧机冷轧无取向硅钢板形控制优化.pdf VIP
- 山东省烟台市2024-2025学年高一下学期期末学业水平诊断数学试题(含答案解析).docx VIP
- 专题02 数列求和(解析版).docx VIP
- 2025版静脉输液治疗实践指南.docx VIP
- 部编人教版二年级下册语文全册教学设计(配2026年春改版教材).docx
- 专题05数列求和.docx VIP
原创力文档

文档评论(0)