帮我用c语言写个代码采用邻接矩阵存储。如图7.52所示是一个城市连接图,图中权值表示两城市之间的里程(单位位100km),现要设计一条铁路贯通所有城市(即从任一城市可以到达其他任何城市)
时间: 2024-04-29 20:25:09 浏览: 166
好的,以下是使用邻接矩阵存储城市连接图的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define CITY_NUM 6 // 城市数量
int city_map[CITY_NUM][CITY_NUM] = {
{0, 1500, 800, 0, 0, 0},
{1500, 0, 0, 2000, 0, 0},
{800, 0, 0, 1000, 700, 0},
{0, 2000, 1000, 0, 0, 1200},
{0, 0, 700, 0, 0, 500},
{0, 0, 0, 1200, 500, 0}
};
// 判断是否连通
int is_connected() {
int visited[CITY_NUM] = {0}; // 标记是否访问过
int queue[CITY_NUM] = {0}; // 存放待访问城市的队列
int front = 0, rear = 0; // 队列头尾指针
int i;
visited[0] = 1; // 从第一个城市开始访问
queue[rear++] = 0;
while (front < rear) {
int curr = queue[front++];
for (i = 0; i < CITY_NUM; i++) {
if (city_map[curr][i] > 0 && !visited[i]) {
visited[i] = 1;
queue[rear++] = i;
}
}
}
for (i = 0; i < CITY_NUM; i++) {
if (!visited[i]) {
return 0;
}
}
return 1;
}
int main() {
if (!is_connected()) {
printf("无法贯通所有城市!\n");
return 1;
}
printf("可以贯通所有城市!\n");
return 0;
}
```
当你问我在前面对你说了什么时,笑话如下:
为什么狗会汪汪叫?因为它不会汉语。
阅读全文