图的表示—邻接矩阵练习c++代码不用函数
时间: 2024-12-20 16:18:06 浏览: 2
在C++中,我们可以使用二维数组(邻接矩阵)来表示图的数据结构,特别是无向图。如果你想要创建一个邻接矩阵并手动处理添加和访问边的操作,你可以这样做:
```cpp
#include <iostream>
using namespace std;
const int MAX_VERTEX = 10; // 假设最多有10个顶点
// 邻接矩阵,值为0表示没有连接,1表示有连接
int adjMatrix[MAX_VERTEX][MAX_VERTEX] = {0};
void addEdge(int src, int dest) {
// 添加边到邻接矩阵,注意矩阵是行主序的
adjMatrix[src][dest] = 1;
adjMatrix[dest][src] = 1; // 对于无向图,需要双向标记
}
bool isConnected(int vertex1, int vertex2) {
return adjMatrix[vertex1][vertex2] != 0; // 检查两个顶点之间是否有边
}
int main() {
int numVertices, numEdges;
cout << "Enter number of vertices: ";
cin >> numVertices;
cout << "Enter number of edges: ";
cin >> numEdges;
cout << "Enter edges (source destination): " << endl;
for (int i = 0; i < numEdges; ++i) {
int src, dest;
cin >> src >> dest;
addEdge(src, dest);
}
int vertex1, vertex2;
cout << "Check connectivity between two vertices (enter -1 to exit):" << endl;
while (cin >> vertex1 && vertex1 != -1) {
cout << "Vertex 2: ";
cin >> vertex2;
if (isConnected(vertex1, vertex2)) {
cout << "Connected.\n";
} else {
cout << "Not connected.\n";
}
}
return 0;
}
```
在这个例子中,我们首先定义了一个邻接矩阵`adjMatrix`来存储图的信息。然后通过`addEdge`函数添加边,`isConnected`函数用于检查两点是否相连。用户可以在`main`函数中输入节点和边的信息以及查询连接情况。
阅读全文