创建一个有5个数据的链表
时间: 2024-10-16 13:14:52 浏览: 23
在C++中,我们可以使用结构体或类来定义链表节点,并使用指针连接这些节点。这里是一个简单的例子,展示了如何创建一个只包含5个整数的数据链表:
```cpp
#include <iostream>
// 定义链表节点结构体
struct Node {
int data;
Node* next; // 指向下一个节点的指针
};
// 创建链表节点的构造函数
Node* createNode(int value) {
Node* newNode = new Node(); // 动态分配内存
newNode->data = value;
newNode->next = nullptr; // 初始时指向nullptr
return newNode;
}
// 创建链表
Node* createLinkedList(int values[], int size) {
if (size <= 0) return nullptr; // 链表不能为空
Node* head = createNode(values[0]); // 将第一个元素添加到头
Node* current = head;
for (int i = 1; i < size; ++i) {
current->next = createNode(values[i]);
current = current->next; // 更新当前节点为新添加的节点
}
return head;
}
// 打印链表
void printList(Node* node) {
while (node != nullptr) {
std::cout << node->data << " -> ";
node = node->next;
}
std::cout << "nullptr" << std::endl;
}
int main() {
int values[] = {1, 2, 3, 4, 5};
int size = sizeof(values) / sizeof(values[0]);
Node* list = createLinkedList(values, size);
if (list != nullptr) {
printList(list); // 打印链表
deleteList(list); // 如果有,记得释放内存
}
return 0;
}
// 自己实现的删除链表功能(可选)
void deleteList(Node* node) {
if (node == nullptr) return;
Node* temp = node;
while (temp->next != nullptr) {
temp = temp->next;
}
delete temp;
}
```
这段代码首先定义了一个链表节点结构体`Node`,然后有一个用于创建单个节点的函数`createNode`。`createLinkedList`函数用于根据给定的数组创建链表,`printList`则用来遍历并打印链表。`main`函数中创建了一个包含5个元素的链表,并将其打印出来。
如果你想要操作这个链表,比如插入、删除元素等,还需要实现更多的函数。在这个示例里,为了简洁,没有包括链表的销毁(即删除)功能,但我在`main`函数末尾提到了一个`deleteList`函数,你可以根据需要扩展这部分。
阅读全文