有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node { int data; struct node *next; } *p,*q,*r; 现要

admin2009-01-15  35

问题 有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。        struct node    {   int data;        struct node  *next;    } *p,*q,*r;    现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是(    )。

选项 A、r->next=q;q->next=r->next;p->next=r;
B、q->next=r->next;p->next=r;r->next=q;
C、p->next=r;q->next=r->next;r->next=p;
D、q->next=r->next;r->next=q;p->next=r;

答案1

解析 对于选项A),执行r->next=q后,r->next指向了q。此时q->next=r-> next就相当于q->next=q;所以q的下一个结点指向了自己,而不是指向原来r的下一个结点,所以选项A)错误。
转载请注明原文地址:https://jikaoti.com/ti/FqK0FFFM
0

最新回复(0)