数据结构课程设计---------最少换车次数问题

本文通过代码展示了如何运用数据结构解决最少换车次数问题,涉及到图论算法和结构设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        问题描述: 设某城市有n个车站,并有m条公交线路连接这些车站。设这些公交车都是单向的,这n个车站被顺序编号为0~n-1。编号程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。
       实现要求:求得从站0出发乘公交车至站n一1的最少换车次数。
       程序设计思路:利用输入信息构建一张有向图G(用邻接短阵g表示),有向图的顶点是车站,若有某条公交线路经i站能到达j站,就在顶点i到顶点j之间设置一条权为1的有向边<i,j)。这样,从站x至站y的最少上车次数便对应于图G中从点x至点y的最短路径长度。而程序要求的换车次数就是上车次数减1。

      代码如下:

#include <stdio.h>
#include <stdlib.h>
#define INFINITY 9999
#define MAXVNUM 30
char ans;
typedef struct
{
	int Vnum;
	int arcs[MAXVNUM][MAXVNUM];            //图的存储结构为邻接矩阵
}Graph;

int createGraph(Graph *g,int *start,int *end)
{
	int n,m,i,j,k,s,count;
	int t[MAXVNUM];
	printf("\n★ 请输入公交车站数和公交车数:\n");
	scanf("%d %d",&n,&m);
	if(n<=1 || m<1)
		return -1;
	g->Vnum = n;
	for(i=0;i<n;i++)
		for(j=0;j&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值