Java 在单链表中搜索元素的程序

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

在此程序中,我们需要搜索给定单链表中的一个节点。

单位矩阵

Java Program to search an element in a singly linked list

要解决此问题,我们将使用一个名为 current 的节点遍历列表。Current 指向 head,并开始将要搜索的节点数据与当前节点数据进行比较。如果它们相等,则将标志设置为 true,并打印消息以及要搜索的节点的位置。

例如,在上面的列表中,搜索节点 4,可以在位置 4 找到。

算法

  • 创建一个名为 Node 的类,它有两个属性:data 和 next。Next 是指向链表中下一个节点的指针。
  • 创建另一个名为 SearchLinkedList 的类,该类有两个属性:head 和 tail。
  • addNode() 将向列表添加一个新节点
    • 创建一个新节点。
    • 它首先检查 head 是否等于 null,这意味着列表为空。
    • 如果列表为空,则 head 和 tail 都将指向新添加的节点。
    • 如果列表不为空,新节点将添加到列表末尾,使得 tail 的 next 指向新添加的节点。此新节点将成为列表的新 tail。

a. searchNode() 将在列表中搜索节点

  • 变量 i 将跟踪要搜索节点的**位置**。
  • 变量 flag 将存储布尔值 false。
  • Node current 将指向 head 节点。
  • 通过将 current 递增到 current.next 和 i 递增到 i + 来**迭代循环**。
  • 如果找到匹配项,则比较每个节点的**数据**与要搜索的节点,并将标志设置为 true。
  • 如果 flag 为 true,则显示要搜索节点的**位置**。
  • 否则,显示消息“元素不在列表中”。

a. display() 将显示列表中存在的节点

  • 定义一个节点 current,它最初将指向列表的 head。
  • 遍历列表直到 current 指向 null。
  • 通过使 current 在每次迭代中指向它的下一个节点来显示每个节点。

程序

输出

Element is present in the list at the position: 2
Element is not present in the list
下一个主题Java 程序