实现图的遍历算法代码
时间: 2024-06-17 08:05:24 浏览: 113
关于图遍历的一个算法代码
实现图的遍历算法主要包括深度优先搜索(DFS)和广度优先搜索(BFS)两种。
深度优先搜索算法:
```
void DFS(int u) {
vis[u] = true; // 标记当前节点已经访问
for (int i = head[u]; i != -1; i = edge[i].next) { // 遍历当前节点的邻接节点
int v = edge[i].to;
if (!vis[v]) { // 如果邻接节点未被访问,则递归访问它
DFS(v);
}
}
}
```
广度优先搜索算法:
```
void BFS(int s) {
queue<int> q;
q.push(s); // 将起始节点加入队列
vis[s] = true; // 标记起始节点已经访问
while (!q.empty()) {
int u = q.front();
q.pop();
for (int i = head[u]; i != -1; i = edge[i].next) { // 遍历当前节点的邻接节点
int v = edge[i].to;
if (!vis[v]) { // 如果邻接节点未被访问,则将它加入队列并标记为已访问
vis[v] = true;
q.push(v);
}
}
}
}
```
阅读全文