在双向链表中查找特定节点

5 Sept 2024 | 2 分钟阅读

我们需要遍历列表以查找列表中的特定元素。执行以下操作以搜索特定操作。

  • 将 head 指针复制到一个临时指针变量 ptr。
  • 声明一个局部变量 I 并将其赋值为 0。
  • 遍历列表直到指针 ptr 变为 null。不断将指针移动到下一个,并将 i 增加 +1。
  • 将列表的每个元素与要搜索的项进行比较。
  • 如果该项与任何节点值匹配,则从函数中返回该值的位置 I,否则返回 NULL。

算法

  • 步骤 1: IF HEAD == NULL
  •   WRITE "下溢"
     GOTO 步骤 8
     [IF 结束]

  • 步骤 2: Set PTR = HEAD
  • 步骤 3: Set i = 0
  • 步骤 4: Repeat step 5 to 7 while PTR != NULL
  • 步骤 5: IF PTR → data = item
  • return i
    [IF 结束]

  • 步骤 6: i = i + 1
  • 步骤 7: PTR = PTR → next
  • 步骤 8: Exit

C 函数

输出

1.Create
2.Search
3.Exit
4.Enter your choice?1

Enter the item
23

Node Inserted

1.Create
2.Search
3.Exit
4.Enter your choice?1

Enter the item
90

Node Inserted

1.Create
2.Search
3.Exit
4.Enter your choice?2

Enter item which you want to search?
90

item found at location 1

下一个主题双向链表