使用邻接矩阵创建一个图,并对这个图进行深度优先遍历和广度优先遍历。用c++编写代码
时间: 2024-02-09 07:12:22 浏览: 81
好的,下面是使用邻接矩阵创建一个图,并对这个图进行深度优先遍历和广度优先遍历的 C++ 代码示例:
```c++
#include <iostream>
#include <queue>
using namespace std;
// 定义邻接矩阵
int adj_matrix[100][100] = {0};
// 深度优先遍历
void dfs(int node, bool visited[], int n) {
visited[node] = true;
cout << node << " ";
for (int i = 0; i < n; i++) {
if (adj_matrix[node][i] && !visited[i]) {
dfs(i, visited, n);
}
}
}
// 广度优先遍历
void bfs(int start, int n) {
bool visited[100] = {false};
queue<int> q;
q.push(start);
visited[start] = true;
while (!q.empty()) {
int node = q.front();
q.pop();
cout << node << " ";
for (int i = 0; i < n; i++) {
if (adj_matrix[node][i] && !visited[i]) {
visited[i] = true;
q.push(i);
}
}
}
}
int main() {
int n = 5; // 节点数量
// 添加边
adj_matrix[0][1] = 1;
adj_matrix[0][2] = 1;
adj_matrix[1][0] = 1;
adj_matrix[1][2] = 1;
adj_matrix[2][0] = 1;
adj_matrix[2][1] = 1;
adj_matrix[2][3] = 1;
adj_matrix[3][2] = 1;
adj_matrix[3][4] = 1;
adj_matrix[4][3] = 1;
// 深度优先遍历
bool visited1[100] = {false};
dfs(0, visited1, n);
cout << endl;
// 广度优先遍历
bfs(0, n);
return 0;
}
```
输出结果为:
```
0 1 2 3 4
0 1 2 3 4
```
注意,深度优先遍历和广度优先遍历的时间复杂度都是 O(n^2),其中 n 表示节点的数量。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)