删除指定节点后的双向链表

2025年3月17日 | 阅读 3 分钟

为了删除指定数据后的节点,我们需要执行以下步骤。

  • 将头指针复制到临时指针 temp。
  • 遍历列表,直到找到所需的数据值。
  • 检查这是否是列表的最后一个节点。如果是,则无法执行删除。
  • 检查要删除的节点是否是列表的最后一个节点,如果是,则需要将此节点的 next 指针指向 null,使其成为列表的新最后一个节点。
  • 否则,使指针 ptr 指向要删除的节点。使 temp 的 next 指向 ptr 的 next。使 ptr 的下一个节点的 previous 指向 temp。释放 ptr。

算法

  • 步骤 1: 如果 HEAD = NULL
  •     写入 UNDERFLOW
       转到步骤 9
      [IF 结束]

  • 步骤 2: 设置 TEMP = HEAD
  • 步骤 3: 重复步骤 4,直到 TEMP -> DATA != ITEM
  • 步骤 4: 设置 TEMP = TEMP -> NEXT
  •    [循环结束]

  • 步骤 5: 设置 PTR = TEMP -> NEXT
  • 步骤 6: 设置 TEMP -> NEXT = PTR -> NEXT
  • 步骤 7: 设置 PTR -> NEXT -> PREV = TEMP
  • 步骤 8: 释放 PTR
  • 步骤 9: EXIT

Deletion in doubly linked list after the specified node

C 函数

输出

1.Append List
2.Delete node
3.Exit
4.Enter your choice?1

Enter the item
12

Node Inserted
1.Append List
2.Delete node
3.Exit
4.Enter your choice?1

Enter the item
23

Node Inserted
1.Append List
2.Delete node
3.Exit
4.Enter your choice?1

Enter the item
34

Node Inserted
1.Append List
2.Delete node
3.Exit
4.Enter your choice?2
Enter the value23

Node Deleted

下一个主题双向链表