单链表中指定节点后的删除

17 Mar 2025 | 阅读 2 分钟

为了删除指定节点之后的节点,我们需要跳过要删除的节点之前的节点,直到到达要删除的节点。我们需要跟踪两个节点:一个是要删除的节点,另一个是该节点之前的一个节点。为此,使用了两个指针:ptr 和 ptr1。

使用以下语句执行此操作。

现在,我们的任务几乎完成了,只需要进行一些指针调整。使 ptr1(指向指定节点)的 next 指向 ptr 的 next(即要删除的节点)。

这将通过以下语句完成。

算法

  • 步骤 1: 如果 HEAD = NULL
  • 显示 UNDERFLOW (下溢)
        转到 步骤 10
       IF (如果) 结束

  • 步骤 2: 设置 TEMP = HEAD
  • 步骤 3: 设置 I = 0
  • 步骤 4: 重复步骤 5 到 8 直到 I
  • 步骤 5: TEMP1 = TEMP
  • 步骤 6: TEMP = TEMP → NEXT
  • 步骤 7: 如果 TEMP = NULL
  • 显示 "未找到指定节点"
        转到 步骤 12
        IF (如果) 结束

  • 步骤 8: I = I+1
  • 循环结束

  • 步骤 9: TEMP1 → NEXT = TEMP → NEXT
  • 步骤 10: 释放 TEMP
  • 步骤 11: 退出

DS Deletion in singly 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?2
12

There are less than 12 elements in the list..

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

Deleted 1 node 

下一主题#