g->adjlist[i1].firstedge=s;
时间: 2024-03-14 12:49:27 浏览: 20
这是将指向新创建的结点 s 的指针赋值给图 g 中顶点 i1 的邻接表的头指针 firstedge。这意味着,顶点 i1 的邻接表的头指针将指向新创建的结点 s,从而形成一个新的邻接点。这条语句的作用是将新创建的结点 s 插入到顶点 i1 的邻接表的头部,使其成为新的邻接点。由于 s 的 next 指针之前已经指向了原来的头结点,因此,通过这两条语句,新的结点 s 成为了顶点 i1 的邻接表的新头结点,而原来的头结点成为了新头结点的下一个结点,从而形成了一个链表。
相关问题
s->next=g->adjlist[i1].firstedge;
这是一个结构体指针 s 指向的结构体 EdgeNode 中的成员变量 next 被赋值为图 g 中顶点 i1 的邻接表的头指针 firstedge 所指向的结构体。其中 -> 运算符用于访问结构体指针所指向结构体中的成员,相当于 (*s).next = g->adjlist[i1].firstedge; 的简写。通常情况下,顶点的邻接表中的每个结点都有一个指向下一个结点的指针,这个指针就是 next。因此,这条语句的作用是将新创建的结点 s 插入到顶点 i1 的邻接表的头部,使其成为新的邻接点。
if(c==0) { s=(EdgeNode *)malloc(sizeof(EdgeNode)); s->adjvex=i1; s->next=g->adjlist[j1].firstedge; g->adjlist[j1].firstedge=s; } }system("cls");
这是一个 if 判断语句。如果变量 c 的值为 0,那么执行 if 语句块中的代码。该代码块首先创建一个新的 EdgeNode 结构体的指针 s,然后将其 adjvex 成员变量赋值为顶点 i1 的编号,将其 next 成员变量赋值为图 g 中顶点 j1 的邻接表的头指针,最后将 s 赋值为顶点 j1 的邻接表的新头结点。这样就将 i1 和 j1 之间的一条边添加到了图 g 中,如果 c 的值不为 0,则不执行该代码块。最后,使用 system 函数清屏。
阅读全文