数据结构考点之双向链表操作

如题:

在这里插入图片描述


分析:
  其实自己已经画出图来,并且按照已经掌握的操作逻辑,写了一遍,但一对下面的选项能对的也就一两个,有的可能一个都对不上!再对正确答案才不仅要问,这种题到底该如何思考呢?其实这些都在书中已经明确了,只是自己没有掌握


解决:

1.双向链表p结点后插入s?
看书上的图:如下:
在这里插入图片描述

一共分了四步:

  • s->prior=p;//对应的选项是 D s是一个指针,指向一个结构体,s->prior指的是结构体里的prior指针,表示前趋指针,因为插入前,这个指针没有所指。
  • s->next=p->next;//对应的选项是 I p->next,插入前就已经有所指了,并且是在等号右面,所以直接就是后继ai+1
  • p->next->prior=s;//对应是G,p->next->prior在等号左面,所以还是指针只不过是p->next里的prior前趋指针,也就是ai+1的前趋指针
  • p->next=s;//对应A

    规律:和给出的答案IGAD,不太一样,但链表插入操作先操作插入位置后结点的特点是不能打乱的,同时双链表独有的特点是先操作s后继指针也不能打乱。

2.p结点前插入s?
如图:
在这里插入图片描述

一共分了四步:

  • s->prior=p->prior;//对应的选项是 N
  • s->next=p;//对应的选项是 C
  • p->prior->next=s;//对应是H
  • p->prior=s;//对应B

    和给出的答案CNHB,不太一样,还是符合上面总结出的规律

3.先看第(5)问删除p??
如图:在这里插入图片描述

分了两步:

  • p->prior->next=p->next;//对应O

  • p->next->prior=p->prior;//对应R

    和给出的答案ORL,一样,多了个释放结点操作。还是符合先操作后继结点的规律
    4.删除p的直接后继??
    如图:在这里插入图片描述

  • p->next->next->prior=p;//对应的是Q

  • p->next=p->next->next,//对应的是E

    和给出的答案JQEM,很不一样,j:q=p->next 先使q指向ai+1,很严谨,因为题目其实是没给q指针的,这里定义了下。
    5.删除p的直接前趋??
    如图:在这里插入图片描述

  • p->prior->prior->next=p;/对应的是P

  • p->prior=p->prior->prior;//对应的是F

    和给出的答案KPFM,注意到删除前趋与删除本身是差不多的操作,但删除后继,是先操作的要删除结点的前趋,其实也可以是先操作后继,顺序不影响删除效果。

是先操作的要删除结点的前趋,其实也可以是先操作后继,顺序不影响删除效果。

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值