c++语言利用头节点创建并初始化一个链表并生成详细代码
时间: 2024-10-06 17:04:16 浏览: 60
二叉链表的应用c++代码_二叉链表c++代码_
在C++中,使用头节点(Head Node)创建并初始化链表通常是指将链表的第一个节点称为头节点,然后通过它来链接所有的数据节点。这里是一个详细的示例,展示如何创建一个动态单链表,并插入一些整数元素:
```cpp
#include <iostream>
// 定义链表节点结构体
struct Node {
int data; // 节点存储的数据
Node* next; // 指向下一个节点的指针
Node(int value) : data(value), next(nullptr) {} // 构造函数
};
// 创建并初始化链表函数
Node* createLinkedList(int arr[], int n) {
Node* head = new Node(arr[0]); // 使用数组第一个元素创建头节点
Node* temp = head; // 初始化临时指针
for (int i = 1; i < n; i++) {
Node* newNode = new Node(arr[i]);
temp->next = newNode; // 将新节点连接到当前节点之后
temp = newNode; // 更新临时指针指向新节点
}
return head;
}
// 打印链表函数
void printList(Node* head) {
Node* current = head;
while (current != nullptr) {
std::cout << current->data << " -> ";
current = current->next;
}
std::cout << "nullptr" << std::endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 示例数组
int n = sizeof(arr) / sizeof(arr[0]);
Node* linkedList = createLinkedList(arr, n); // 创建链表
printList(linkedList); // 打印链表
// 销毁链表(记得释放内存)
Node* current = linkedList;
while (current != nullptr) {
Node* temp = current;
current = current->next;
delete temp;
}
delete linkedList;
return 0;
}
```
在这个例子中,首先创建了一个包含`arr`数组元素的链表。`createLinkedList`函数接受一个整数数组和其长度,然后依次构造每个节点并将其添加到链表中。最后,`printList`函数遍历链表并打印节点值。注意,在`main`函数结束时要手动删除每个节点以释放内存,避免内存泄漏。
阅读全文