如何提供一个已经构建好的单向链表
时间: 2024-10-16 19:14:14 浏览: 25
要提供一个已经构建好的单向链表,首先你需要定义一个节点结构(Node),然后创建链表节点并连接它们。以下是一个简单的C++实现:
```cpp
#include <iostream>
// 定义链表节点结构
struct Node {
int data; // 节点数据
Node* next; // 指向下一个节点的指针
Node(int value) : data(value), next(nullptr) {} // 构造函数,初始化数据和next为nullptr
};
// 创建链表的方法
std::shared_ptr<Node> createLinkedList(const std::vector<int>& values) {
if (values.empty()) return nullptr; // 如果列表为空,返回空指针
auto head = std::make_shared<Node>(values[0]); // 链表头节点
std::shared_ptr<Node> current = head;
for (size_t i = 1; i < values.size(); ++i) {
current->next = std::make_shared<Node>(values[i]);
current = current->next;
}
return head;
}
// 打印链表
void printList(Node* node) {
while (node != nullptr) {
std::cout << node->data << " ";
node = node->next;
}
std::cout << "\n";
}
int main() {
std::vector<int> values = {1, 2, 3, 4, 5};
auto list = createLinkedList(values);
if (list) {
std::cout << "Linked List: ";
printList(list.get()); // 使用get()获取裸指针来打印
} else {
std::cout << "List is empty.\n";
}
return 0;
}
```
在这个例子中,`createLinkedList`函数接受一个整数向量,根据这些值构造了一个单向链表。`printList`函数用于遍历并打印链表中的所有元素。
如果你有一个具体的链表数据想要演示,只需替换`main`函数中的`values`数组即可。如果链表为空,`createLinkedList`会返回一个空`std::shared_ptr`。
阅读全文