用c语言编写程序,所完成的功能为:(1)建立六个元素的无向图;(2)在屏幕上输出邻接矩阵;(3)输出图的深度遍历结果(以1号顶点作为起点)。
时间: 2023-12-29 20:02:23 浏览: 21
好的,以下是用 C 语言实现的代码,可以帮你实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 6
int graph[MAX_VERTICES][MAX_VERTICES] = {
{0, 1, 1, 0, 1, 0},
{1, 0, 1, 0, 1, 0},
{1, 1, 0, 1, 0, 0},
{0, 0, 1, 0, 1, 1},
{1, 1, 0, 1, 0, 1},
{0, 0, 0, 1, 1, 0},
};
int visited[MAX_VERTICES] = {0};
void printAdjacencyMatrix(int graph[][MAX_VERTICES], int vertices) {
printf("邻接矩阵:\n");
for (int i = 0; i < vertices; i++) {
for (int j = 0; j < vertices; j++) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
}
void dfs(int vertex) {
visited[vertex] = 1;
printf("%d ", vertex + 1);
for (int i = 0; i < MAX_VERTICES; i++) {
if (graph[vertex][i] == 1 && !visited[i]) {
dfs(i);
}
}
}
int main() {
printAdjacencyMatrix(graph, MAX_VERTICES);
printf("深度遍历结果:");
dfs(0);
printf("\n");
return 0;
}
```
运行这个程序,输出结果为:
```
邻接矩阵:
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 1 0 0
0 0 1 0 1 1
1 1 0 1 0 1
0 0 0 1 1 0
深度遍历结果:1 2 3 4 5 6
```
希望这个程序能够帮到你,如果你有其他问题,欢迎随时向我提问。