问题 单项选择题

现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指向一个链表中连续的三个结点。

struct node

{char data;

struct node*next;}*P,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是()。

A.q->next=r->next;p->next=r;r->next:q;

B.P->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r;

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

答案

参考答案:D

解析:

r->next=q,这时r指向的节点为q;p->next=r,这时p指向的节点为r;q->next=r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以不对。

填空题
问答题 简答题