📅  最后修改于: 2023-12-03 15:40:53.788000             🧑  作者: Mango
本文将介绍如何使用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++ 程序的实现方法。该程序可以很容易地操作链表,并在循环遍历所有元素后将它们输出。我们可以使用这个程序来操作其他类似的问题,如在数列中查找连续的元素或对列表进行排序操作。