关于指针调换的问题的理解

一、指针p、q和r依次指向某循环链表中三个相邻的结点,交换结点*q和结点*r在表中次序的程序段是()

A:  

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

B:  

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

C:  

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

D:  

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

二、在一个单链表中,已知q所指结点是p所指结点的后继结点,若在p和q之间插入s所指结点,则正确的操作是()

A:  

s->next=p->next;p->next=s;

B:  

s->next=q;p->next=s->next;

C:  

q->next=s;s->next=p; 

D:  

p->next=s;s->next=p;

我相信很多人应该都跟我一样,一开始都不明白这种题目。我思考了之后,想到了一个很好理解的方法。

所谓X1->next = X2->next,X1->next表示的是目前准备要指向的目标,X2指的是需要调换的那个项。

比如说第一题。原来的顺序是PQRP,因为要把QR调换顺序。所以Q->next = R->next。

比如说第二题,原来的顺序是PQ,因为要把S放到中间变成PSQ,这样的话,就相当于S->next替换了P->next的位置。所以应该有S->next = P->next。

转载于:https://my.oschina.net/u/3280685/blog/3089433

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值