问题 单项选择题

有以下结构体说明和变量定义,如图所示,指针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=q;

D、q->next=r->next; r->next=q; p->next=r;

答案

参考答案:A

解析:

“r->next=q;”表示r的下一个结点为qo“q->next=->next;”则表示q的下一个结点是r的下一个结点,即q结点本身,因此与后续结点便断开了联系。

名词解释
问答题 简答题