c++实现可以初始化邻接矩阵存储和邻接表,并增加求顶点的度、求某顶点的所有邻接点、增加一个顶点、删除一条边等成员函数
时间: 2024-02-05 15:04:13 浏览: 26
好的,我来为你提供一个可以初始化邻接矩阵存储和邻接表,并增加求顶点的度、求某顶点的所有邻接点、增加一个顶点、删除一条边等成员函数的代码。
邻接矩阵存储:
```c++
const int MAXN = 100; // 最大顶点数
int G[MAXN][MAXN]; // 邻接矩阵表示图
int n; // 顶点数
// 初始化图
void init() {
memset(G, 0, sizeof(G));
n = 0;
}
// 在顶点u和v之间添加一条边
void add_edge(int u, int v) {
G[u][v] = 1;
G[v][u] = 1;
}
// 删除顶点u和v之间的边
void remove_edge(int u, int v) {
G[u][v] = 0;
G[v][u] = 0;
}
// 获取顶点v的度数
int get_degree(int v) {
int degree = 0;
for (int i = 0; i < n; i++) {
if (G[v][i]) degree++;
}
return degree;
}
// 获取顶点v的所有邻接点
vector<int> get_neighbors(int v) {
vector<int> neighbors;
for (int i = 0; i < n; i++) {
if (G[v][i]) neighbors.push_back(i);
}
return neighbors;
}
// 添加一个新顶点
void add_vertex() {
n++;
}
// 删除一个顶点及其所有边
void remove_vertex(int v) {
for (int i = 0; i < n; i++) {
G[v][i] = 0;
G[i][v] = 0;
}
for (int i = v + 1; i < n; i++) {
for (int j = 0; j < n; j++) {
G[i - 1][j] = G[i][j];
}
}
for (int i = v + 1; i < n; i++) {
for (int j = 0; j < n; j++) {
G[j][i - 1] = G[j][i];
}
}
n--;
}
```
邻接表存储:
```c++
const int MAXN = 100; // 最大顶点数
vector<int> G[MAXN]; // 邻接表表示图
int n; // 顶点数
// 初始化图
void init() {
for (int i = 0; i < MAXN; i++) {
G[i].clear();
}
n = 0;
}
// 在顶点u和v之间添加一条边
void add_edge(int u, int v) {
G[u].push_back(v);
G[v].push_back(u);
}
// 删除顶点u和v之间的边
void remove_edge(int u, int v) {
for (int i = 0; i < G[u].size(); i++) {
if (G[u][i] == v) {
G[u].erase(G[u].begin() + i);
break;
}
}
for (int i = 0; i < G[v].size(); i++) {
if (G[v][i] == u) {
G[v].erase(G[v].begin() + i);
break;
}
}
}
// 获取顶点v的度数
int get_degree(int v) {
return G[v].size();
}
// 获取顶点v的所有邻接点
vector<int> get_neighbors(int v) {
return G[v];
}
// 添加一个新顶点
void add_vertex() {
n++;
}
// 删除一个顶点及其所有边
void remove_vertex(int v) {
for (int i = 0; i < G[v].size(); i++) {
int u = G[v][i];
for (int j = 0; j < G[u].size(); j++) {
if (G[u][j] == v) {
G[u].erase(G[u].begin() + j);
break;
}
}
}
G[v].clear();
n--;
}
```
以上就是实现可以初始化邻接矩阵存储和邻接表,并增加求顶点的度、求某顶点的所有邻接点、增加一个顶点、删除一条边等成员函数的代码。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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://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://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://csdnimg.cn/download_wenku/file_type_ask_c1.png)