数据结构 课程设计报告(城市地铁设计)

合集下载

数据结构课程设计:地铁

数据结构课程设计:地铁

数据结构课程设计:地铁建设问软件学院课程设计报告书课程名称_______________ 数据结构 _______________ 设计题目___________ 地铁建设问题 ______________ 专业班级__________________________学号__________________________姓名_________________________________ 指导教师2014年1月17日目录1设计时间 02设计目的 03设计任务 04设计内容 04.1总体设计 04.2需求分析 (1)4.3详细设计 (1)4.4测试与分析 (3)4.4.1测试 (3)4.4.2分析 (4)4.5 附录 (4)5总结与展望 (8)参考文献 (9)成绩评定 (11)1设计时间2014年1月15日2设计目的设计各辖区之间最短地铁,使修建费用最少3设计任务某城市要在各个辖区之间修建地铁, 由于地铁建设费用昂贵, 建设线路,使市民可以沿地铁到达各个辖区,并使总费用最小。

4设计内容(1) 输入各个辖区名称和各辖区间直接距离(地铁铺设费用与距离成正比) (2) 根据辖区距离信息,计算出应该在哪些辖区建立地铁线路。

(3)输出应该建设的地铁线路及所需建设总里程。

4.1总体设计睡立无向囹•咯閃曹巨阵存因此需要合理安排地铁输入担真.纯恵 痒口宜仙巨离图4-1算法图4.2需求分析(1) 本程序设计计算城市内各辖区间修建地铁的最短路程。

(2) 运行时,输入辖区的名称,各辖区之间用空格键隔开,以 (3) 输入各辖区间距离时,先输入两辖区名称,再输入距离。

(4)最后计算最短距离来得出最少费用。

采用邻接矩阵存储构造无向图int creatgraph(Graph *g)char a[10],b[10];printf("请输入所有的辖区,以#为输入结束标志\n");while (strcmp("#" ,g->V[i])!=0)i++;scanf("%s" ,g->V[i]); }g->vex num=i;#输入结束4.3 详细设计int i=O,j,m,k,p;for (i=O;i<g->vex nu m;i++)for (j=0;j<g->vex nu m;j++) g->R[i][j]=INFINITY; printf("请输入辖区和辖区之间的路程,scan f("%s%s%d" ,a,b,&m);while (strcmp( "##" ,a)!=0 || strcmp( "##" { k=locatevex(g,a); p=locatevex(g,b);if(k==-1){printf("没有%s这个辖区\n" ,a);return 0;}if(p==-1){printf("没有%s这个辖区\n" ,b);return 0;}g->R[k][p]=g->R[p][k]=m;scanf("%s%s%d" ,a,b,&m);}return 1;}普利姆算法生成最小树struct tree //构造最小生成树// {int weizhi;int lowcost;}; 丄##为结束标志\n"); ,b)!=0 || m!=0)int minimun( struct tree *a,Graph g) {int i,k,m=O;for (i=O;i<g.vex nu m;i++)f (m==0 && a[i].lowcost!=0)m=1;k=i;if (m==1 && a[i].lowcost!=0)if (a[i].lowcost<a[k].lowcost)k=i;ret u rn k;4.4 测试与分析4.4.测试1图4-1正确测试结果图4-2错误测试结果4.4.2分析调试时,在输入数据时,再输完数据后要再次按下空格键,再输入结束符号才会结束本次输入进入下一个输入。

数据结构课程方案地铁建设问题

数据结构课程方案地铁建设问题

个人资料整理仅限学习使用软件学院课程设计报告书课程名称数据结构课程设计设计题目地铁建设问题专业班级学号姓名指导教师2018年 1 月目录1 设计时间12 设计目的13设计任务14 设计内容14.1需求分析14.2总体设计24.3详细设计44.4测试与分析11 4.4.1测试114.4.2分析134.5 附录145 总结与展望20参考文献22成绩评定22操作结果:构造一个无向图G;LocateDistri(Graph g,int u>操作结果:找出目标城市的位置;Min(Graph g,closedge closedge>操作结果:求出点与点之间的最短路径;Prim(G,G.distrinam[1]>操作结果:用普里姆算法找到连接各辖区的最短路;4.2.3主程序的流程主程序的流程如图1所示:图14.2.4各程序模块之间的层次<调用)关系各程序模块之间的层次<调用)关系如图2所示:图24.3详细设计4.3.1预处理#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#define INFINITY 10000#define M 20typedef struct{ //创建图的结构体char V[M][10]。

//顶点数组,用来存储辖区的值即辖区的名称 int R[M][M]。

//邻接矩阵,邻接矩阵的元素值为辖区之间的距离{int i。

Graph g。

char a[10]。

i=creatgraph(&g>。

if(i>{printf("***********请输入起始地点为:************\n">。

scanf("%s",a>。

MiniSpanTree_PRIM(g,a>。

城市轨道交通规划与设计课程设计报告

城市轨道交通规划与设计课程设计报告

站台层用房布置
站台层西端设有:
照明配电室、电缆井、隧道柜室。
站台层东端设有:
安全门控制室、照明配电室、车站备品库、钢瓶间、35KV 开关柜室、控制室、 0.4 KV 开关柜室、检修室、储藏室、清扫工具间、污水泵房、废水泵房、卫生间 、整流变压器室、电能吸收装置室等用房。
10
车站规模确定——设备、管理用房
城市轨道交通规划与设计课程设计报告
—— 车站设计部分
小组成员 李雨鸿 陈志杰 蒋婧文 谭凯诺 薛 晨 指导老师 毛保华 08251012 08251003 08251008 08251018 08251021 刘智丽
1
答辩提纲
1 2 3 4 5 6 车站周边及站位情况 车站方案介绍
技术经济分析
车站规模确定 车站建筑设计 客流组织与紧急疏散、容量校核
8
车站规模确定——客流量
本站远期早高峰小时客流量大于晚高峰小时客流量,因此以远期早高峰 小时客流量为控制客流量,客流超高峰系数取1.3。
远期早高峰小时客流量(人/小时) 上行 下行 远期晚高峰小时客流量(人/小时)
上行
下客量 3554 上客量 2019
下行
下客量 4174 上客量 1809
下客量
2500
车站客流组织:
出站流线
进站流线
左片区 (进站服务区域)
中片区 (出站服务区域)
右片区 (进站服务区域)
在进出站闸机共排的两处闸机位置,用栏杆分离进出站客流。
21
客流组织与紧急疏散、容量校核
安全疏散时间验算:
远期高峰小时客流量时发生火灾情况下,6min内将一列车内所载乘 客、站台上候车乘客和站台上工作人员全部撤离站台。

城市轨道交通课程设计报告很齐全,很完整的课程设计

城市轨道交通课程设计报告很齐全,很完整的课程设计

轨道交通课程设计报告指导老师:江苏大学武晓辉老师一、项目背景及镇江市轨道交通建设必要性镇江市位于北纬31°37′~32°19′,东经118°58′~119°58′,地处长江三角洲地区的东端,江苏省的西南部,北临长江,与扬州市、泰州市隔江相望;东、南与常州市相接;西邻南京市。

镇江市域总面积3847平方公里,总体规划定位城市性质为国家历史文化名城,长江三角洲重要的港口、风景旅游城市和区域中心城市之一。

2005年,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。

伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求。

镇江市为江苏省辖地级市,现辖京口、润州、丹徒三区,代管句容、丹阳、扬中三市。

另有国家级经济技术开发区-镇江新区行使市辖区经济、社会管理权限。

镇江全市总面积3848平方公里,人口311万人,市区户籍人口103.3万人市,市区常住人口122.37万人,人民政府驻润州区南徐大道68号。

内部城市空间结构调整:2005年,镇江城市总体规划进入实施阶段,城市空间布局将极大突破现有形态,“扩充两翼、向南延伸”成为城市新的发展方向。

伴随城市化进程加快、镇江跨入特大城市行列,城市空间的拓展对城市交通体系提出了新的要求,建设轨道交通是未来城市规划的必然结果。

城市化发展水平规划:近期(2000-2010):城市化水平达到:55% 城镇人口162万中期(2010-2020):城市化水平达到:60% 城镇人口184万远期(2020-2050):城市化水平达到:70% 城镇人口231万城市等级规模规划:中期:形成1个大城市,1个中等城市,2个小城市和38个小城镇的等级结构。

远期:形成1个特大城市,2个中等城市,1个小城市和27个小城镇的等级结构。

镇江位于南京都市圈核心层,是一座新兴工业城。

镇江拥有2个国家级开发区、6个省级开发区、5个国家级高新技术产业基地,镇江市的经济发展水平居江苏省中等偏上水平。

数据结构与算法课程设计城市公共交通最短线路

数据结构与算法课程设计城市公共交通最短线路

数据结构与算法课程设计一、问题描述及设计目的城市公共交通最短线路,利用邻接矩阵来构建交通节点,邻接矩阵的行列编号即为交通中的节点,有行列决定的数据即为权值基本的输入信息和条件:1. 输入总的节点个数,即为交通中的站点数目本程序中,站点的数目最大值为100。

2. 输入存在的通路,即为弧两个站点之间是联通的弧的数目是有限制的,数目小于站点数目[n *( n-1)]/23. 输入存在通路的两点,即为两站点站点编号要小于站点总数目二、应具备的功能1. 确定起点的最短路径问题,即已知起始结点,求最短路径的问题。

2. 确定终点的最短路径问题,与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。

在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。

3. 确定起点终点的最短路径问题,即已知起点和终点,求两结点之间的最短路径。

三、设计思想、主要算法的实现、基本操作、子程序调用关系1. Dijkstra算法的基本思想按路径长度递增顺序求最短路径算法。

2. Dijkstra算法的基本步骤设V。

是起始源点,S是已求得最短路径的终点集合。

V-S =未确定最短路径的顶点的集合,初始时S={V 0},长度最短的路径是边数为1且权值最小的路径。

下一条长度最短的路径:①V i • V - S,先求出V o到V i中间只经S中顶点的最短路径;② 上述路径中长度最小者即为下一条长度最短的路径; ② 将所求最短路径的终点加入 S 中; 重复直到求出所有终点的最短路径。

3. 存储结构设计本系统采用图结构类型(mgraph )存储抽象交通图的信息。

其中: 各站点间的邻接关系用图的邻接矩阵类型存储;图的顶点个数及边的 个数由分量n 、e 表示,它们是整型数据。

数据结构如下:typedef struct//顶点编号查询站点间的最短路程距离和路径int no;In foType info;//顶点其他信息,这里用于存放边的权值} VertexType; //顶点类型 typedef struct// 图的定义int edges[MAXV][MAXV]; //邻接矩阵int n,e;//顶点数,弧数VertexType vexs[MAXV]; //存放顶点信息 } MGraph;// 图的邻接矩阵类型该功能是查询站点的最短路径,包括距离和线路,有Floyd()函数实现。

数据结构_课程设计报告(城市地铁设计)

数据结构_课程设计报告(城市地铁设计)

数据结构课程设计报告学院:计算机科学与工程专业:计算机科学与技术班级:09级班学号:姓名:指导老师:时间: 2010年12月一、课程设计题目:1、哈夫曼编码的实现2、城市辖区地铁线路设计3、综合排序算法的比较二、小组成员:三、题目要求:1.哈夫曼编码的实现(1)打开若干篇英文文章,统计该文章中每个字符出现的次数,进一步统一各字符出现的概率。

(2)针对上述统计结果,对各字符实现哈夫曼编码(3)对任意文章,用哈夫曼编码对其进行编码(4)对任意文章,对收到的电文进行解码2.某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线。

(1)从包含各辖区的地图文件中读取辖区的名称和各辖区的直接距离(2)根据上述读入的信息,给出一种铺设地铁线路的解决方案。

使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。

(3)输出应该建设的地铁路线及所需要建设的总里程信息。

3.综合排序算法的比较各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概的执行时间。

试通过随机的数据比较各算法的关键字比较次数和关键字移动的次数。

(1)对以下各种常用的内部排序算法进行比较:直接插入排序,折半插入排序,二路归并排序,希尔排序,冒泡排序,快速排序简单选择排序,堆排序,归并排序,基数排序。

(2)待排序的表长不少于100,要求采用随机数。

(3)至少要用5组不同的输入数据做比较:比较的次数为有关键字参加的比较次数和关键字移动的次数(4)改变数据量的大小,观察统计数据的变化情况。

(5)对试验统计数据进行分析。

对各类排序算法进行综合评价。

四、项目安排:1、小组内分工合作分工:负责哈夫曼编码的实现,负责城市辖区地铁线路设计,负责综合排序算法的比较。

合作:组内,组外进行交流,组长帮助解决组员的在项目过程中的困难,并控制进度。

五、完成自己的任务:任务:城市辖区地铁线路设计1.实现方案创建城市辖区图表信息将信息写入文件从文件读取信息最优路径的选择输出最优路径的相关信息在整个编程中,我是通过手动输入的方式把数据写到文件中,而不是直接从文件中读取,这个不是题目要求的,但是我想当拿到数据之后都要对数据进行处理,干脆直接手动输入得出结果。

数据结构课程设计—城市道路交通咨询系统

数据结构课程设计—城市道路交通咨询系统

榆林学院数据结构课程设计报告题目城市交通咨询系统作者杨朝专业信息管理与信息系统学号指导老师张慧答辩时间目录1 .系统需求分析 (1)用户需求分析 (1)功能需求分析 (2)数据需求分析 (2)小结 (3)2.系统设计 (3)系统设计功能 (3)每个模块的具体功能。

(4)采用C语言定义相关数据类型 (4)建立邻接矩阵交通网络: (4)查询指定城市到其他城市自己建的最短路程: (6)查询任意两个城市之间的一条最短路径: (7)主函数的调用关系图 (8)3.系统测试 (9)操作说明 (9)测试数据 (10)用户进入界面: (10)、具体功能的实现 (11)、结束程序 (12)4.总结 (13)5.致谢 (13)6.附录 (14)1.系统需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

且在图中,顶点表示城市,边表示城市之间的交通关系。

设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。

对系统分析,主要从以下几个方面进行分析。

1.用户需求分析2.功能需求分析3.数据需求分析用户需求分析现如今网络非常发达,无论人们出差,旅游或者做其他的出行之时,都会想到道路问题,切不仅仅关心的是交通费用,而且对于里程和所需要的时间等的问题也是同样的关心,在此系统中,完全面向用户,可以用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。

且在图中,顶点表示城市,边表示城市之间的交通关系。

设计一个交通咨询系统,能够让旅客咨询从任一城市顶点到达另外一个城市之间顶点的最短路径问题(最短里程问题)。

当要查询某两个城市之间的最短交通路线或者其中一个城市到达其余城市的最短路线时,是一个很繁琐的过程。

数据结构课程设计_地铁建设问题

数据结构课程设计_地铁建设问题

数据结构课程设计_地铁建设问题地铁建设问题是一个涉及到城市交通规划和基础设施建设的重要议题。

在数据结构课程设计中,我们将探讨如何利用合适的数据结构和算法来解决地铁建设问题。

一、问题描述在城市规划中,地铁系统的建设是一个复杂而关键的任务。

我们需要设计一个程序,能够根据给定的城市地图和站点信息,实现以下功能:1. 添加地铁线路:能够添加新的地铁线路,并指定每个站点的名称和位置。

2. 添加地铁站点:能够在已有的地铁线路上添加新的站点,并指定站点的名称和位置。

3. 查询地铁线路:能够根据线路名称查询该线路的所有站点信息。

4. 查询地铁站点:能够根据站点名称查询该站点所属的所有线路信息。

5. 查询两个站点之间的最短路径:能够根据给定的起点和终点站点,计算出两个站点之间的最短路径,并输出经过的所有站点。

二、数据结构设计为了实现上述功能,我们可以使用以下数据结构:1. 图(Graph):用于表示整个地铁网络,每个站点作为图的一个节点,站点之间的连接关系作为图的边。

2. 邻接表(Adjacency List):用于表示每个站点的邻接站点,方便查询某个站点的相邻站点。

3. 最短路径算法(Dijkstra算法):用于计算两个站点之间的最短路径。

三、算法设计1. 添加地铁线路:根据输入的线路名称和站点信息,将新的线路添加到地铁网络中。

2. 添加地铁站点:根据输入的站点名称和位置,将新的站点添加到指定的地铁线路中,并更新相邻站点的连接关系。

3. 查询地铁线路:根据输入的线路名称,遍历地铁网络,找到该线路的所有站点信息,并输出。

4. 查询地铁站点:根据输入的站点名称,遍历地铁网络,找到该站点所属的所有线路信息,并输出。

5. 查询两个站点之间的最短路径:根据输入的起点和终点站点,利用Dijkstra 算法计算最短路径,并输出经过的所有站点。

四、实现步骤1. 定义图(Graph)数据结构,包括节点和边的定义,以及相关的操作方法。

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

数据结构课程设计报告学院:计算机科学与工程专业:计算机科学与技术班级:09级班学号:姓名:指导老师:时间: 2010年12月一、课程设计题目:1、哈夫曼编码的实现2、城市辖区地铁线路设计3、综合排序算法的比较二、小组成员:三、题目要求:1.哈夫曼编码的实现(1)打开若干篇英文文章,统计该文章中每个字符出现的次数,进一步统一各字符出现的概率。

(2)针对上述统计结果,对各字符实现哈夫曼编码(3)对任意文章,用哈夫曼编码对其进行编码(4)对任意文章,对收到的电文进行解码2.某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线。

(1)从包含各辖区的地图文件中读取辖区的名称和各辖区的直接距离(2)根据上述读入的信息,给出一种铺设地铁线路的解决方案。

使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。

(3)输出应该建设的地铁路线及所需要建设的总里程信息。

3.综合排序算法的比较各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概的执行时间。

试通过随机的数据比较各算法的关键字比较次数和关键字移动的次数。

(1)对以下各种常用的内部排序算法进行比较:直接插入排序,折半插入排序,二路归并排序,希尔排序,冒泡排序,快速排序简单选择排序,堆排序,归并排序,基数排序。

(2)待排序的表长不少于100,要求采用随机数。

(3)至少要用5组不同的输入数据做比较:比较的次数为有关键字参加的比较次数和关键字移动的次数(4)改变数据量的大小,观察统计数据的变化情况。

(5)对试验统计数据进行分析。

对各类排序算法进行综合评价。

四、项目安排:1、小组内分工合作分工:负责哈夫曼编码的实现,负责城市辖区地铁线路设计,负责综合排序算法的比较。

合作:组内,组外进行交流,组长帮助解决组员的在项目过程中的困难,并控制进度。

五、完成自己的任务:任务:城市辖区地铁线路设计1.实现方案创建城市辖区图表信息将信息写入文件从文件读取信息最优路径的选择输出最优路径的相关信息在整个编程中,我是通过手动输入的方式把数据写到文件中,而不是直接从文件中读取,这个不是题目要求的,但是我想当拿到数据之后都要对数据进行处理,干脆直接手动输入得出结果。

在这个代码中,最重要的是铁路线路的最优设计。

在这个代码的实现中,我用了Kruscal的想法,然后通过函数的嵌套实现最优路径的选取的。

2.代码的实现#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include <iostream.h>#include <string.h>#define MAXSIZE 100typedef struct link{int connect;int fee;//费用struct link *next;}edgenode;typedef struct node{char name[10];//名称edgenode *link;}city;typedef struct{city vex[MAXSIZE];int city_n,city_e;}city_graph;city_graph ga;int total_fee=0;//记录总费用void creat(city_graph *ga)//创建辖区总信息{int i=0 ,a,b;edgenode *q;edgenode *p;printf("请输入城市辖区个数: ");//城市中辖区的个数scanf("%d",&ga->city_n);printf("请输入城市辖区间路径的总个数: ");//辖区间的路径scanf("%d",&ga->city_e);for(i=1;i<ga->city_n+1;i++)//建立城市辖区信息表{printf("请输入第%d个城市辖区名称: ",i);scanf("%s",ga->vex[i].name);ga->vex[i].link=NULL;}for(i=0;i<ga->city_e;i++)//辖区联系表(头插法){printf("请输入第%d组两个相邻辖区的编号",i+1);//还没有处理数据,比如输入的是超出规定范围的数据p=(edgenode *)malloc(sizeof (edgenode ));q=(edgenode *)malloc(sizeof (edgenode ));scanf("%d%d",&a,&b);printf("请输入两辖区间的费用:");//两辖区间路程的费用scanf("%d",&p->fee);q->fee=p->fee;p->connect=b;q->connect=a;p->next=ga->vex[a].link;//建立两辖区间的联系ga->vex[a].link=p;q->next=ga->vex[b].link;ga->vex[b].link=q;}void view(city_graph *ga)//输出{system("cls");//清屏。

int i;edgenode *p;for(i=1;i<ga->city_n+1;i++){p=ga->vex[i].link;//printf("%s\n",ga->vex[i].name);p rintf("\n与辖区%s 相连的辖区有:\n",ga->vex[i].name);p rintf("\n名称————费用\n");i f(p==NULL)printf("------------\n");w hile(p!=NULL){printf("%s %5d\n",ga->vex[p->connect].name,p->fee);p=p->next;}p rintf("\n\n");}void insert(city_graph *ga)//导入文件中{FILE *fp;edgenode *p;int i=0;if((fp=fopen("e:\\辖区.txt","w+"))==NULL){printf("打开文件失败!\n");exit(0);}for(i=1;i<ga->city_n+1;i++){p=ga->vex[i].link;fputs(ga->vex[i].name,fp);fprintf(fp,"\n");fprintf(fp,"%d\n",p->connect);fprintf(fp,"%d\n",p->fee);}fclose(fp);}/*city_graph * load(city_graph *gb)//从文件中导出//待解决FILE *fp;int i=1;edgenode *p;if((fp=fopen("e:\\辖区.txt","r+"))==NULL){printf("打开文件失败!\n");exit(0);}while(fscanf(fp,"%s%d%d",gb->vex[i].name,&p->connect,&p->fee)!=E OF){p=(edgenode *)malloc(sizeof (edgenode ));p->next=gb->vex[i].link;gb->vex[i].link=p;i++;}fclose(fp);return gb;}*/city_graph * change(city_graph *ga,int min_a,int min_b)//改变俩辖区间的费用{edgenode *p,*q,*t,*t1;p=ga->vex[min_a].link;q=ga->vex[min_a].link;t1=ga->vex[min_b].link;while(p!=NULL){i f(p->connect==min_b){p->fee=0;//q->next=p;}q=p;p=p->next;}t=ga->vex[min_b].link;while(t!=NULL){i f(t->connect==min_a){t->fee=0;// t1->next=t;}t1=t;t=t->next;}return ga;}city_graph * find_next(city_graph *ga,int i)//{edgenode *p,*q;int j,min,min_sign,min_record;q=ga->vex[i].link;min=q->fee;min_sign=q->connect;min_record=i;for(j=1;j<ga->city_n+1;j++)//找费用最少的两个辖区{p=ga->vex[j].link;//记下当前辖区,以便在此辖区的联系链中找到此链下的最小花费路径while(p!=NULL)if((p->fee<min)&&(p->fee!=0)){min=p->fee;min_sign=p->connect;min_record=j;}p=p->next;}}if(min!=0)//把费用为0的滤去(因为在改变费用时把原来的费用给置成了0,以便判断哪些路径是比较过的){printf("%s------- %s %d\n",ga->vex[min_record].name,ga->vex[min_sign].na me,min);//输出建设路径total_fee=total_fee+min;ga=change(ga,min_record,min_sign); //改变两辖区间的费用,以便区分return ga;}void find(city_graph *ga)//Kruscal算法{int i;printf("\n\n以下是建设路径\n\n");printf("辖区名----辖区名---费用\n\n");for(i=1;i<ga->city_n+1;i++){ga=find_next(ga,i);//调用函数找全部路径中最小费用的辖区}printf("\n总费用= %d\n\n",total_fee);}void main(){//city_graph *gb;creat(&ga);view(&ga);insert(&ga);//读入文件//gb=(city_graph *)malloc(sizeof(city_graph));//gb=load(gb);//导出到文件中find(&ga);//未使用到从文件导出的图,而是使用了导入文件的图,因为导出文件有问题。

相关文档
最新文档