求大佬做一下这个数据结构C语言版编程题目

 我来答
弈轩
2018-07-06 · 知道合伙人教育行家
弈轩
知道合伙人教育行家
采纳数:1029 获赞数:7542
电子设计大赛三等奖 优秀毕业生

向TA提问 私信TA
展开全部

如图


需要源代码请追问:(网页端写了部分源代码,太长写不完哦)

/*
小L居住的地方有很多城市...
作者:q839219286
*/

/*
算法思想:城市图采用DFS搜索,搜索终止条件是:到达终点或 Vmax-Vmin>dV
设 dV=Vmax-Vmin,求dV的方法是将 Vmax、Vmin的历史记录压入堆栈
图结构采用“邻接表”法,存储结构采用数组。
*/
//C语言版
#include<stdio.h>
#include<stdlib.h>
#include <limits.h>
/*
约束条件:
2≤Q≤5 ,1<n≤500,0<m≤5000, 1≤ Ui, Vi, S, T ≤n, 0< Wi <30000,
*/

//宏定义函数
#define MAX(a,b) (a)>(b)?(a):(b)
#define MIN(a,b) (a)<(b)?(a):(b)

//图节点结构(邻接表法)
struct VNode {
struct Edge *next;
char visited; //是否在本路径中访问过,=1是;=0否
};

//图的边结构(邻接表法)
struct Edge {
int v; //道路的行驶速度
struct VNode *adjVex; //道路通向的城市节点
struct Edge *next;
};

#define max_Vex 500
#define max_Edge 5000
//最多500个城市(其中下标为0不使用)
struct VNode vex[max_Vex + 1];
struct Edge edge[max_Edge * 2]; //一条边有两个节点需要记录
int vex_Num, edge_Num;
struct VNode *start, *end; //起点、终点
int minDIF; //已经找到的通往终点路径中Vmax-Min的最小差值

void addEdge(int Ui, int Vi, int Wi);//新增 Ui 通往 Vi的道路
void buildGraph();
void DFS(struct VNode *vex, int Vmax, int Vmin);

int main() {
int Q; scanf("%d", &Q); //一个整数Q,代表有多少组测试数据。
int out[5],i; //2≤Q≤5
for (i=0; i<Q ; i++) {
buildGraph(); //scanf已包含在内
DFS(start, -1, INT_MAX-1);
out[i] = minDIF;
}
//输出最终结果
printf("结果:\n"); //★提交时要注释掉,我这是方便看
for (i = 0; i<Q; i++) {
printf("%d\n",out[i] );
}
getchar(); getchar(); //防止闪退
return 0;
}

我比较重视采纳率,由于楼下那位被网采了,如果楼主不采纳我,我就要掉采纳率了555.

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
lzs丶灬
2016-12-22 · TA获得超过632个赞
知道小有建树答主
回答量:881
采纳率:100%
帮助的人:506万
展开全部
```什么题目啊
如果S-T有一条直接的道路呢?
还是是不是可以重复走也没说
追问
我也不懂,已经放弃这个题了,但还是谢谢你的回答,十分感谢
来自:求助得到的回答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式