写一个C++程序能实现对连通无向图的深度优先和广度优先遍历算法
时间: 2024-02-12 18:03:41 浏览: 99
好的,以下是C++程序实现对连通无向图的深度优先和广度优先遍历算法:
```cpp
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
void dfs(vector<int> adj[], bool visited[], int node) {
visited[node] = true;
cout << node << " ";
for (int i = 0; i < adj[node].size(); i++) {
int neighbor = adj[node][i];
if (!visited[neighbor]) {
dfs(adj, visited, neighbor);
}
}
}
void bfs(vector<int> adj[], bool visited[], int node) {
queue<int> q;
visited[node] = true;
q.push(node);
while (!q.empty()) {
int curr = q.front();
q.pop();
cout << curr << " ";
for (int i = 0; i < adj[curr].size(); i++) {
int neighbor = adj[curr][i];
if (!visited[neighbor]) {
visited[neighbor] = true;
q.push(neighbor);
}
}
}
}
int main() {
int n, m;
cin >> n >> m;
vector<int> adj[n+1];
bool visited[n+1];
for (int i = 1; i <= n; i++) {
visited[i] = false;
}
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
cout << "DFS: ";
dfs(adj, visited, 1);
cout << endl;
for (int i = 1; i <= n; i++) {
visited[i] = false;
}
cout << "BFS: ";
bfs(adj, visited, 1);
cout << endl;
return 0;
}
```
程序接收两个整数n和m作为输入,表示无向图有n个节点和m条边。然后,程序将m对整数输入,每对整数表示一条边的两个节点。程序使用邻接表(adj)存储图形。然后,程序调用dfs和bfs函数来实现深度优先和广度优先遍历算法,并打印顶点序列。最后,程序返回0。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.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)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)