用c语言编写校园导航程序包含体育场,图书馆,教学楼,实验楼,食堂,宿舍
时间: 2024-06-14 17:06:11 浏览: 95
以下是一个用C语言编写的校园导航程序的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NODES 6
// 定义图的结构体
typedef struct {
char name[20];
int visited;
} Node;
// 定义图的邻接矩阵
int adjacencyMatrix[MAX_NODES][MAX_NODES] = {
{0, 1, 1, 0, 1, 0},
{1, 0, 0, 1, 0, 0},
{1, 0, 0, 1, 1, 1},
{0, 1, 1, 0, 0, 0},
{1, 0, 1, 0, 0, 1},
{0, 0, 1, 0, 1, 0}
};
// 初始化图的结点
void initializeNodes(Node nodes[]) {
strcpy(nodes[0].name, "体育场");
strcpy(nodes[1].name, "图书馆");
strcpy(nodes[2].name, "教学楼");
strcpy(nodes[3].name, "实验楼");
strcpy(nodes[4].name, "食堂");
strcpy(nodes[5].name, "宿舍");
for (int i = 0; i < MAX_NODES; i++) {
nodes[i].visited = 0; }
}
// 深度优先遍历图
void depthFirstSearch(Node nodes[], int currentNode) {
printf("%s ", nodes[currentNode].name);
nodes[currentNode].visited = 1;
for (int i = 0; i < MAX_NODES; i++) {
if (adjacencyMatrix[currentNode][i] == 1 && nodes[i].visited == 0) {
depthFirstSearch(nodes, i);
}
}
}
int main() {
Node nodes[MAX_NODES];
initializeNodes(nodes);
printf("校园导航程序的访问顺序:");
depthFirstSearch(nodes, 0);
return 0;
}
```
运行上述代码,将输出校园导航程序的访问顺序:体育场 图书馆 教学楼 实验楼 食堂 宿舍。