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

现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。struct node{har data;struct node*next;)*p,*q,*r;现要将q和r所指结点交换前后位嚣,同时要保持链表的结构,下列不能完成此操作的语句是(  )。

问题:

[单选] 现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。
struct node
{har data;
struct node*next;)*p,*q,*r;
现要将q和r所指结点交换前后位嚣,同时要保持链表的结构,下列不能完成此操作的语句是(  )。

A . q->next=r->next;p->next=r;r->next=q;
B . q->next=r;q-->next=r->next;r->next=q;
C . q->next=r->next;r->next=q;p->next=r;
D . q->next=q;p->next=r;q->next=r->next;

参考答案:D

参考解析:

D。【解析】由题目中线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,P指向r结点,r指向q结点即可。而在选项D中,r一>nextq,这时r指向的节点为q;p-->next—r,这对P指向的节点为r;q一>next—r-->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项I)不正确。

联系我们

联系我们

查看联系方式

邮箱: 2643773075@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部