📌  相关文章
📜  用于将元素的所有出现移动到链表中结束的 C++ 程序(1)

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

用于将元素的所有出现移动到链表中结束的 C++ 程序

本文将介绍如何使用C ++编程语言编写一个程序,该程序可以将给定的元素中所有出现移动到链表的末尾。

程序实现

程序的主要思路是,在给定的元素列表中检查每个元素的出现情况,并将元素加入链表中。以下是程序的伪代码实现:

定义一个链表的结构体,包括两个属性:元素值和下一个节点的指针。
定义一个指向链表头的指针并初始化为 NULL。
定义一个数组来存储所有元素。
定义一个变量来存储数组中的元素个数。
循环遍历数组中的每个元素:
    新建一个节点并将其元素值初始化为当前的元素。
    将新节点插入到链表的末尾。
循环遍历链表:
    将链表中的每个节点的元素值输出到控制台。

实际代码如下:

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

Node* tail = nullptr;

void insert(int val) {
    Node* newNode = new Node;
    newNode->value = val;
    newNode->next = nullptr;
    if (!tail) {
        tail = newNode;
    } else {
        tail->next = newNode;
        tail = newNode;
    }
}

void printList() {
    Node* curr = tail ? tail->next : nullptr;
    while (curr) {
        cout << curr->value << " ";
        curr = curr->next;
    }
}

int main() {
    int arr[] = {1, 3, 5, 1, 2, 3, 5, 7, 9, 1, 3, 5};
    int n = sizeof(arr) / sizeof(int);
    for (int i = 0; i < n; i++) {
        insert(arr[i]);
    }
    printList();
    return 0;
}
程序说明

程序中使用了一个链表来存储元素,链表的每个节点包括元素的值和指向下一个节点的指针。程序中定义了一个指向链表头的指针 tail,初始值为 NULL。程序遍历给定的元素列表,对于每个元素,它都新建一个节点,并将节点插入到链表的末尾。

在 insert() 函数中,程序新建一个节点,并将值和指针初始化,然后根据链表是否为空,将节点插入到链表末尾或成为链表的新头部。

在 printList() 函数中,程序从链表头开始循环遍历链表,每输出一个节点的元素值就向下移动到下一个节点。

最后,在主函数中,我们将给定的元素列表传递给 insert() 函数,然后使用 printList() 函数打印存储在链表中的所有元素。

结论

本文介绍了一种用于将元素的所有出现移动到链表中结束的 C++ 程序的实现方法。该程序可以很容易地操作链表,并在循环遍历所有元素后将它们输出。我们可以使用这个程序来操作其他类似的问题,如在数列中查找连续的元素或对列表进行排序操作。