创建邻接矩阵完成图的深度优先遍历的c语言
时间: 2024-10-24 07:16:23 浏览: 19
图的邻接矩阵表示,深度优先遍历,广度优先遍历实现
在C语言中,利用邻接矩阵来表示图并实现深度优先搜索(DFS),你可以按照以下步骤进行:
1. **数据结构**:
- 定义一个二维数组或动态数组`adjMatrix[vertices][vertices]`作为邻接矩阵,其中`vertices`代表顶点的数量。矩阵的元素`adjMatrix[i][j] = 1`表示顶点i和j之间有边。
2. **初始化**:
- 初始化矩阵,根据实际图的连接设置相应的值。
3. **深度优先遍历函数**:
```c
void DFS(int start, int visited[], adjMatrix) {
visited[start] = 1; // 标记当前节点已访问
printf("%d ", start); // 输出当前节点
// 遍历与start相连的所有未访问节点
for (int i = 0; i < vertices; i++) {
if (adjMatrix[start][i] == 1 && !visited[i]) {
DFS(i, visited, adjMatrix);
}
}
}
```
4. **主程序**:
- 初始化一个`visited[]`数组来记录每个顶点是否已访问过,并调用DFS从指定起始节点开始遍历。
```c
int main() {
int vertices, start;
printf("Enter the number of vertices: ");
scanf("%d", &vertices);
adjMatrix[vertices][vertices]; // 初始化矩阵
// 输入邻接矩阵的值,这里省略实际输入部分
printf("Enter starting vertex for DFS: ");
scanf("%d", &start);
DFS(start, visited, adjMatrix);
return 0;
}
```
阅读全文