C语言图的深度优先遍历代码实现
时间: 2023-12-25 07:28:10 浏览: 142
以下是C语言图的深度优先遍历代码实现:
```c
#define MAX_VERTEX_NUM 20 //最大顶点数
typedef struct ArcNode { //边表结点
int adjvex; //邻接点在数组中的位置下标
struct ArcNode *nextarc; //指向下一个邻接点的指针
}ArcNode;
typedef struct VNode { //顶点表结点
char data; //顶点信息
ArcNode *firstarc; //指向第一个邻接点的指针
}VNode, AdjList[MAX_VERTEX_NUM];
typedef struct { //图
AdjList vertices; //邻接表
int vexnum, arcnum; //顶点数和边数
}Graph;
bool visited[MAX_VERTEX_NUM]; //访问标记数组
void DFS(Graph G, int v) //从顶点 v 出发,深度优先遍历图 G
{
visit(v);
visited[v] = TRUE;
for(w = FirstNeighbor(G,v); w>=0; w = NextNeighbor(G,v,w))
if(!visited[w]) //w 为 u 尚未访问过的邻接顶点
DFS(G,w);
}
void DFSTraverse(Graph G)
{
for(v = 0; v<G.vexnum; v++)
visited[v] = FALSE; //初始化已访问标记数组
for(v = 0; v<G.vexnum; v++)
if(!visited[v])
DFS(G,v);
}
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)