请给我无向图的深度优先遍历非递归方法代码示例
时间: 2023-03-30 07:01:58 浏览: 129
当然可以,以下是无向图的深度优先遍历非递归方法代码示例:
```
void DFS(vector<vector<int>>& graph, vector<bool>& visited, int start) {
stack<int> s;
s.push(start);
visited[start] = true;
while (!s.empty()) {
int curr = s.top();
s.pop();
for (int i = ; i < graph[curr].size(); i++) {
int next = graph[curr][i];
if (!visited[next]) {
visited[next] = true;
s.push(next);
}
}
}
}
void DFS_non_recursive(vector<vector<int>>& graph) {
int n = graph.size();
vector<bool> visited(n, false);
for (int i = ; i < n; i++) {
if (!visited[i]) {
DFS(graph, visited, i);
}
}
}
```
希望能够帮到你!
阅读全文