深度优先遍历邻接矩阵代码
时间: 2024-06-05 22:04:46 浏览: 127
深度优先遍历(Depth First Search, DFS)是一种用于遍历或搜索树或图的算法。在遍历时,从起点开始,尽可能深地搜索图的分支,直到没有未访问的节点为止,然后回溯到上一个节点,继续搜索下一个分支。邻接矩阵是一种表示图的常见方式,下面是深度优先遍历邻接矩阵的代码实现:
```
#include <iostream>
using namespace std;
const int MAXSIZE = 100;
class Graph {
private:
int vertex[MAXSIZE]; // 存储节点信息
int arc[MAXSIZE][MAXSIZE]; // 存储边信息
bool visited[MAXSIZE]; // 标记节点是否被访问过
int vertex_num, arc_num; // 节点数和边数
public:
Graph(int vnum, int anum) : vertex_num(vnum), arc_num(anum) {
for (int i = 0; i < vertex_num; ++i) {
for (int j = 0; j < vertex_num; ++j) {
arc[i][j] = 0;
}
}
}
~Graph() {}
void createGraph() {
cout << "请输入节点信息:" << endl;
for (int i = 0; i < vertex_num; ++i) {
cin >> vertex[i];
}
cout << "请输入边信息:" << endl;
for (int i = 0; i < arc_num; ++i) {
int vi, vj;
cin >> vi >> vj;
arc[vi][vj] = 1;
arc[vj][vi] = 1; // 如果是有向图,则只存储arc[vi][vj] = 1即可
}
}
void DFS(int v) {
visited[v] = true;
cout << vertex[v] << " ";
for (int i = 0; i < vertex_num; ++i) {
if (arc[v][i] == 1 && !visited[i]) {
DFS(i);
}
}
}
};
int main() {
int vnum, anum;
cout << "请输入节点数和边数:" << endl;
cin >> vnum >> anum;
Graph graph(vnum, anum);
graph.createGraph();
cout << "深度优先遍历序列为:" << endl;
for (int i = 0; i < vnum; ++i) {
if (!graph.visited[i]) {
graph.DFS(i);
}
}
return 0;
}
```
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.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)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.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://img-home.csdnimg.cn/images/20241231044937.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)