邻接矩阵调用nextadjvex函数
时间: 2023-07-09 21:31:26 浏览: 114
使用邻接矩阵实现存储图的话,可以通过调用 "nextadjvex" 函数来查找某个顶点的下一个邻接顶点。具体代码如下:
```c++
#define MAX_VERTEX_NUM 100 // 最大顶点数
// 定义图结构体
typedef struct {
int vertex[MAX_VERTEX_NUM]; // 存储所有顶点的数据
int arc[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 存储所有边的权重
int vexnum, arcnum; // 顶点数和边数
} MGraph;
// 找到顶点 v 的下一个邻接顶点,并返回其下标
int nextadjvex(MGraph G, int v, int w) {
if (v >= G.vexnum || w >= G.vexnum) {
return -1; // 顶点不存在,返回 -1
}
for (int i = w + 1; i < G.vexnum; i++) { // 遍历顶点 v 所在的行
if (G.arc[v][i] != 0 && G.arc[v][i] != INFINITY) { // 找到下一个非零元素
return i; // 返回该元素的列下标,即邻接顶点下标
}
}
return -1; // 该顶点没有下一个邻接顶点,返回 -1
}
```
以上代码中,我们使用了邻接矩阵存储图,并实现了 "nextadjvex" 函数来查找某个顶点的下一个邻接顶点。在该函数中,我们传入了一个存储图的邻接矩阵、需要查找的顶点下标、以及上一个邻接顶点的下标,通过遍历该顶点所在的行,找到下一个非零元素并返回其列下标即可。需要注意的是,如果该顶点没有下一个邻接顶点,则返回 -1。
阅读全文