发布网友 发布时间:2022-04-23 09:24
共1个回答
热心网友 时间:2023-10-09 11:10
int NextAdjVex(ALGraph G, VertexType v, VertexType w)
{ /* 初始条件:图G存在,v是G中某个顶点,w是v的邻接顶点 */
/* 操作结果:返回v的(相对于w的)下一个邻接顶点的序号。若w是v的最后一个邻接点,则返回-1 */
ArcNode* p, p1; /* p1在Point()中用作辅助指针,Point()在func2-1.c中 */
ElemType e;
int v1;
v1 = LocateVex(G, v); /* v1为顶点v在图G中的序号 */
e.adjvex = LocateVex(G, w); /* e.adjvex为顶点w在图G中的序号 */
p = Point(G.vertices[v1].firstarc, e, equalvex, &p1); /* p指向顶点v的链表中邻接顶点为w的结点 */
if (!p || !p->next) /* 没找到w或w是最后一个邻接点 */
return -1;
else /* p->data.adjvex==w */
return p->next->data.adjvex; /* 返回v的(相对于w的)下一个邻接顶点的序号 */
}