📌  相关文章
📜  用于在链表中搜索元素的 C++ 程序(1)

📅  最后修改于: 2023-12-03 15:40:53.630000             🧑  作者: Mango

在链表中搜索元素的 C++ 程序

链表是一种数据结构,它由一系列节点组成,每个节点包含一个指向下一个节点的指针以及一些数据。链表可以用于在数据集中查找、插入和删除元素。这里我们将学习如何在链表中搜索元素的 C++ 程序。

定义链表

我们需要定义一个结构体来表示链表中的每个节点。每个节点包含一个整数值和一个指向下一个节点的指针。代码如下所示:

struct Node {
    int data;
    Node* next;
};
创建链表

接下来我们需要创建一个链表。我们可以创建一个函数来动态地添加节点到链表中。在下面的示例代码中,我们创建了一个 addNode() 函数,它将创建一个新节点,并将新节点插入到链表的末尾。

Node* addNode(Node* head, int data) {
    Node* node = new Node;
    node->data = data;
    node->next = nullptr;
    if (head == nullptr) {
        head = node;
    } else {
        Node* current = head;
        while (current->next != nullptr) {
            current = current->next;
        }
        current->next = node;
    }
    return head;
}
搜索链表中的元素

我们想要搜索链表中的元素,我们可以编写一个函数,循环遍历链表并查找指定的元素。下面的示例代码实现了这个功能:

bool search(Node* head, int data) {
    Node* current = head;
    while (current != nullptr) {
        if (current->data == data) {
            return true;
        }
        current = current->next;
    }
    return false;
}
完整代码

下面是完整的程序代码:

struct Node {
    int data;
    Node* next;
};

Node* addNode(Node* head, int data) {
    Node* node = new Node;
    node->data = data;
    node->next = nullptr;
    if (head == nullptr) {
        head = node;
    } else {
        Node* current = head;
        while (current->next != nullptr) {
            current = current->next;
        }
        current->next = node;
    }
    return head;
}

bool search(Node* head, int data) {
    Node* current = head;
    while (current != nullptr) {
        if (current->data == data) {
            return true;
        }
        current = current->next;
    }
    return false;
}

int main() {
    Node* head = nullptr;
    head = addNode(head, 1);
    head = addNode(head, 2);
    head = addNode(head, 3);
    head = addNode(head, 4);
    head = addNode(head, 5);
    bool found = search(head, 3);
    if (found) {
        std::cout << "Element found\n";
    } else {
        std::cout << "Element not found\n";
    }
    return 0;
}
总结

我们已经学习了如何在链表中搜索元素的 C++ 程序。我们创建了一个用于表示链表节点的结构体,并编写了一个添加节点和搜索节点的函数。这个程序可以在搜索链表中的数据时非常有用。