c++利用数组创建单链表
时间: 2024-10-14 11:16:46 浏览: 5
在C++中,可以使用数组间接地表示链表,但这通常不是直接使用数组结构来存储链表节点,因为链表的特点是每个节点包含指向下一个节点的指针,而不是顺序存储数据。然而,我们可以使用数组来模拟链表的行为,例如在一个动态大小的数组中存储节点地址,并通过数组下标进行“链接”。
下面是一个简单的示例,展示如何使用数组来构建一个只包含固定数量节点的单向链表:
```cpp
#include <iostream>
// 定义链表节点结构体
struct Node {
int data;
Node* next; // 指向下一个节点的指针
};
// 数组用于存储链表节点
Node nodes[5]; // 假设我们有一个最多5个节点的链表
// 创建节点并初始化它们
void createList(Node* start) {
for (int i = 0; i < sizeof(nodes) / sizeof(nodes[0]); i++) {
if (i == 0) { // 链表的第一个节点
start->data = i + 1;
start->next = &nodes[i + 1];
} else { // 后续节点
nodes[i].data = i + 1;
nodes[i].next = &nodes[i + 1];
}
// 最后一个节点的 next 指向 NULL 表示链表结束
if (i == sizeof(nodes) / sizeof(nodes[0]) - 1) {
nodes[i].next = nullptr;
}
}
}
// 打印链表
void printList(Node* current) {
while (current != nullptr) {
std::cout << current->data << " -> ";
current = current->next;
}
std::cout << "NULL" << std::endl;
}
int main() {
Node* head = &nodes[0]; // 初始化链表头部
createList(head);
printList(head); // 打印链表内容
return 0;
}
```
在这个例子中,`createList`函数创建了一个只有五个节点的链表。注意,这种方法限制了链表的大小,如果需要动态添加或删除节点,就不再适用。
阅读全文