在双向链表存储结构中,删除p所指的结点时须修改指针 (A. p->next->prior = p->prior; p->prior->next=p->next;)。

正确答案:A

解析:

在双向链表中,每个节点都有指向其前驱节点和后继节点的指针。删除一个节点时,需要将该节点的前驱节点的后继指针指向该节点的后继节点,并将该节点的后继节点的前驱指针指向该节点的前驱节点。

选项 A 正确地完成了上述操作:

  • p->next->prior = p->prior; 将 p 节点后继节点的前驱指针指向 p 节点的前驱节点。
  • p->prior->next = p->next; 将 p 节点前驱节点的后继指针指向 p 节点后继节点。

其他选项都是错误的,因为它们没有正确地修改指针,会导致链表结构被破坏。

例如:

  • 选项 B 只是将 p 节点的后继指针指向其后继节点的后继节点,没有修改其前驱节点的指针,会导致 p 节点的后继节点无法访问。
  • 选项 C 则将 p 节点的前驱节点的后继指针指向 p 节点,会导致 p 节点被重新插入链表,无法被删除。
  • 选项 D 将 p 节点的前驱指针指向其后继节点的后继节点,并将 p 节点的后继指针指向其前驱节点的前驱节点,会导致链表结构被严重破坏。

结论:

在双向链表中删除节点时,必须正确修改指针,以确保链表结构的完整性。选项 A 是正确的方法,其他选项都是错误的。

双向链表删除节点时指针修改方法

原文地址: https://www.cveoy.top/t/topic/qcoB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录