C++以邻接矩阵形式创建一个无向图
时间: 2023-10-21 14:18:30 浏览: 86
下面是使用邻接矩阵创建无向图的C++代码示例:
```c++
#include <iostream>
using namespace std;
const int MAX = 100;
class Graph {
private:
int numVertices;
int adjMatrix[MAX][MAX];
public:
Graph(int numVertices) {
this->numVertices = numVertices;
for (int i = 0; i < numVertices; i++) {
for (int j = 0; j < numVertices; j++) {
adjMatrix[i][j] = 0;
}
}
}
void addEdge(int i, int j) {
adjMatrix[i][j] = 1;
adjMatrix[j][i] = 1;
}
void removeEdge(int i, int j) {
adjMatrix[i][j] = 0;
adjMatrix[j][i] = 0;
}
void printGraph() {
for (int i = 0; i < numVertices; i++) {
cout << "Vertex " << i << " is connected to: ";
for (int j = 0; j < numVertices; j++) {
if (adjMatrix[i][j] == 1) {
cout << j << " ";
}
}
cout << endl;
}
}
};
int main() {
Graph g(5);
g.addEdge(0, 1);
g.addEdge(0, 4);
g.addEdge(1, 2);
g.addEdge(1, 3);
g.addEdge(1, 4);
g.addEdge(2, 3);
g.addEdge(3, 4);
g.printGraph();
return 0;
}
```
在上面的代码中,我们首先定义了一个Graph类,该类包含两个私有成员变量:numVertices表示图中顶点的数量,adjMatrix是一个二维数组,表示邻接矩阵。接下来,我们定义了构造函数和一些函数来添加和删除边以及打印图。在main函数中,我们创建了一个Graph对象,并添加了一些边。最后,我们打印了整个图的邻接表形式。
阅读全文