创建邻接矩阵图的C++代码
时间: 2024-05-16 11:16:10 浏览: 95
下面是一个简单的 C++ 代码示例,用于创建邻接矩阵图:
```c++
#include <iostream>
using namespace std;
int main() {
// 定义图的大小
int n = 4;
// 初始化邻接矩阵
int adj_matrix[n][n] = { {0, 1, 0, 1},
{1, 0, 1, 0},
{0, 1, 0, 1},
{1, 0, 1, 0} };
// 打印邻接矩阵
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
cout << adj_matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
在这个示例中,我们创建了一个大小为 4 的图,并初始化了其邻接矩阵。最后,我们打印了邻接矩阵以进行验证。你可以根据自己的需要修改图的大小和邻接矩阵。
相关问题
邻接矩阵的c++代码实现
邻接矩阵是一种常见的图数据结构,它用二维数组表示图中每个顶点之间的连接关系。下面是一个简单的C++代码实现,假设我们有一个无向图:
```cpp
#include <iostream>
#include <vector>
// 定义一个无向图节点
struct Node {
int id;
};
// 定义邻接矩阵
class AdjacencyMatrix {
private:
std::vector<std::vector<int>> matrix; // 图的大小和边的值
public:
// 构造函数,初始化一个n x n的全零矩阵
AdjacencyMatrix(int n) : matrix(n, std::vector<int>(n, 0)) {}
// 添加边 (u, v),如果(u, v)之间有边,则置对应位置为1
void addEdge(int u, int v) {
matrix[u][v] = 1;
matrix[v][u] = 1; // 对于无向图,需要两边都记录
}
// 检查是否包含边 (u, v)
bool isConnected(int u, int v) const {
return matrix[u][v] == 1;
}
};
int main() {
AdjacencyMatrix graph(5); // 创建一个有5个顶点的图
graph.addEdge(0, 1);
graph.addEdge(1, 2);
graph.addEdge(3, 4);
// 输出连接情况
for (int i = 0; i < graph.matrix.size(); ++i) {
for (int j = i; j < graph.matrix[i].size(); ++j) {
if (graph.isConnected(i, j)) {
std::cout << "Edge between node " << i << " and " << j << ": Connected\n";
} else {
std::cout << "Edge between node " << i << " and " << j << ": Not connected\n";
}
}
}
return 0;
}
```
无向图的邻接矩阵c++
以下是一个简单的C++代码示例,用于创建和打印无向图的邻接矩阵:
```c++
#include <iostream>
using namespace std;
const int MAX = 100;
int main() {
int n, m;
int adj[MAX][MAX];
// 输入节点数和边数
cout << "请输入节点数和边数: ";
cin >> n >> m;
// 初始化邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
adj[i][j] = 0;
}
}
// 输入边的信息
for (int i = 0; i < m; i++) {
int u, v;
cout << "请输入第" << i + 1 << "条边的两个端点: ";
cin >> u >> v;
adj[u][v] = 1;
adj[v][u] = 1; // 无向图邻接矩阵对称
}
// 输出邻接矩阵
cout << "邻接矩阵: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << adj[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
这段代码首先要求用户输入节点数和边数,然后初始化邻接矩阵。接下来,用户将输入每条边的两个端点,并在邻接矩阵中标记它们。最后,程序将打印邻接矩阵。
阅读全文