给我一个 采用邻接矩阵存储一个无向图的c++代码
时间: 2024-02-15 13:05:28 浏览: 70
无权值的无向图的邻接矩阵-C++版数据结构-张宏
以下是一个简单的采用邻接矩阵存储一个无向图的C++代码:
```c++
#include <iostream>
using namespace std;
#define MAX_SIZE 100
class Graph {
private:
int num_vertex; // 图顶点的个数
int adj_matrix[MAX_SIZE][MAX_SIZE]; // 邻接矩阵
public:
Graph(int num_vertex) {
this->num_vertex = num_vertex;
for (int i = 0; i < num_vertex; i++) {
for (int j = 0; j < num_vertex; j++) {
adj_matrix[i][j] = 0;
}
}
}
void add_edge(int i, int j) {
adj_matrix[i][j] = 1;
adj_matrix[j][i] = 1;
}
void remove_edge(int i, int j) {
adj_matrix[i][j] = 0;
adj_matrix[j][i] = 0;
}
void print_matrix() {
for (int i = 0; i < num_vertex; i++) {
for (int j = 0; j < num_vertex; j++) {
cout << adj_matrix[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Graph g(5);
g.add_edge(0, 1);
g.add_edge(0, 4);
g.add_edge(1, 2);
g.add_edge(1, 3);
g.add_edge(1, 4);
g.add_edge(2, 3);
g.add_edge(3, 4);
g.print_matrix();
return 0;
}
```
以上代码中,我们首先定义了一个Graph类,其中包含了图顶点个数和邻接矩阵这两个成员变量,以及一些函数,如add_edge、remove_edge和print_matrix等,分别用于添加边、删除边和打印邻接矩阵。在main函数中,我们创建了一个Graph对象,并向其中添加了一些边,最后调用print_matrix函数输出邻接矩阵。
阅读全文