一、 实验环境
学宝虚拟机,VC6.0
二、 实验目的
城市合理安排地铁的路线,利用无向图最小生成树的方法使地铁到达各个区并且总的建设费用最小。
三、 实验内容
1. 用C语言实现图的邻接矩阵存储结构或邻接表的存储结构;
2. 实现图的输入算法及图的深度优先遍历和广度优先遍历(分别针对连通图和非连通图)算法;
3. 利用图的经典算法解决实际应用问题(利用求最小生成树算法求解地铁建设最佳方案)。
四、 数据结构与算法思想描述
(1) 在输入图的顶点的过程中,我们给顶点安排的序号是以用户输入顶点的顺序为依据的。比如:用户输入的第一个顶点的序号默认为0,故该顶点的值存储在vexs[0]中……,当用户输完n个顶点后,这n个顶点就全部存储在数组vexs[0..n-1]中了。
(2) 图的输入:
步骤1:通过输入语句scanf接收用户输入顶点个数和边的条数:g->vexNum和g->edgeNum;
步骤2:给二维数组arcs赋初值使 g->arcs[1..vexNum-1][1..vexNum-1]=∞;
步骤3:通过输入语句scanf接收用户输入g->vexNum个顶点的值存放于一维数组g->vexs[0.. g->vexNum-1]中;
步骤4:通过输入语句scanf接收用户输入g->edgeNum条边的两个顶点的值及该边上的权值<va,vb,