将int数组赋值给linkedlist struct的方法有很多种,下面给出其中一种实现方式:
#include <iostream>
#include <list>
struct Node {
int data;
Node* next;
};
void arrayToLinkedList(int arr[], int size, Node** head) {
*head = nullptr;
Node* tail = nullptr;
for (int i = 0; i < size; i++) {
Node* newNode = new Node();
newNode->data = arr[i];
newNode->next = nullptr;
if (*head == nullptr) {
*head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
}
void printLinkedList(Node* head) {
Node* current = head;
while (current != nullptr) {
std::cout << current->data << " ";
current = current->next;
}
std::cout << std::endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
Node* head = nullptr;
arrayToLinkedList(arr, size, &head);
std::cout << "Linked List: ";
printLinkedList(head);
return 0;
}
在这个示例中,我们定义了一个名为Node的结构体,其中包含一个整数数据成员和一个指向下一个节点的指针成员。然后,我们编写了一个arrayToLinkedList函数,它接受一个整数数组、数组大小和一个指向指针的指针(用于存储链表的头指针),并将整数数组的元素逐个创建为节点,并按顺序链接它们。最后,我们编写了一个printLinkedList函数来打印链表中的元素。
在main函数中,我们定义了一个整数数组arr和其大小。然后,我们声明了一个指向Node的指针head,并将其初始化为nullptr。接下来,我们调用arrayToLinkedList函数,将arr、大小和head的地址作为参数传递。最后,我们调用printLinkedList函数,打印链表中的元素。
这种方法通过动态内存分配和节点链接的方式,将整数数组的元素赋值给linkedlist struct。需要注意的是,为了避免内存泄漏,应该在使用链表后手动释放内存,即在不再需要链表时,使用delete运算符释放每个节点的内存。
领取专属 10元无门槛券
手把手带您无忧上云