在双向链表中在指定节点后插入

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

为了在列表中指定节点后插入一个新节点,我们需要跳过所需数量的节点以到达指定的节点,然后进行必要的指针调整。

为此,请使用以下步骤。

  • 为新节点分配内存。使用以下语句实现:
  • 使用指针 temp 遍历列表,跳过所需数量的节点以到达指定的节点。
  • for 循环结束时,temp 将指向指定的节点。新节点需要插入到该节点之后,因此我们需要在此处进行一些指针调整。使 ptr 的 next 指针指向 temp 的下一个节点。

使新节点 ptr 的 prev 指向 temp。

使 temp 的 next 指针指向新节点 ptr。

使 temp 的下一个节点的 previous 指针指向新节点。

算法

  • 步骤 1:如果 PTR = NULL
  •    写入 OVERFLOW
       转到步骤 15
     [IF 结束]

  • 步骤 2:设置 NEW_NODE = PTR
  • 步骤 3:设置 PTR = PTR -> NEXT
  • 步骤 4:设置 NEW_NODE -> DATA = VAL
  • 步骤 5: SET TEMP = START
  • 步骤 6: SET I = 0
  • 步骤 7: 重复 8 到 10,直到 I
  • 步骤 8:设置 TEMP = TEMP -> NEXT
  • 步骤 9: IF TEMP = NULL
  • 步骤 10: WRITE "LESS THAN DESIRED NO. OF ELEMENTS"(元素数量少于期望值)
  •    GOTO STEP 15(转到步骤 15)
       [IF 结束]
     [循环结束]

  • 步骤 11: SET NEW_NODE -> NEXT = TEMP -> NEXT
  • 步骤 12: SET NEW_NODE -> PREV = TEMP
  • 步骤 13 : SET TEMP -> NEXT = NEW_NODE
  • 步骤 14: SET TEMP -> NEXT -> PREV = NEW_NODE
  • 步骤 15: EXIT(退出)

Insertion in doubly linked list after Specified node

C 函数

输出

Enter the item which you want to insert?
12

Node Inserted

Press 0 to insert more ?
0

Enter the item which you want to insert?
90

Node Inserted

Press 0 to insert more ?
2

下一个主题双向链表