线性链表的建立及逆序输出:输入一个正整数序列,遇负数时停止,建立一个线性链表存储读入的数据,将各个元素按逆序输出。C++代码
时间: 2024-09-29 13:14:00 浏览: 82
在C++中,我们可以创建一个简单的单向链表结构,并通过迭代来实现这个功能。首先,我们需要定义节点结构(Node),包含数据和指向下一个节点的指针。然后,我们将遍历输入序列,遇到负数就停止并开始逆序输出。
```cpp
#include <iostream>
// 定义链表节点
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
// 创建链表函数
void createList(int input[], int size, Node** head) {
Node* current = nullptr; // 初始化当前节点为nullptr
for (int i = 0; i < size && input[i] >= 0; i++) {
Node* newNode = new Node(input[i]); // 创建新节点
newNode->next = current; // 将新节点链接到链表尾部
current = newNode; // 更新当前节点
}
*head = current; // 设置链表头节点
}
// 逆序输出链表函数
void printReverse(Node* head) {
if (head == nullptr) return;
// 使用递归实现链表逆序打印
std::cout << head->data << " ";
printReverse(head->next);
}
int main() {
int input[] = {1, 2, -3, 4, -5, 6};
int size = sizeof(input) / sizeof(input[0]);
Node* head = nullptr;
createList(input, size, &head);
std::cout << "逆序输出链表:\n";
printReverse(head);
// 清理内存
Node* temp;
while (head != nullptr) {
temp = head;
head = head->next;
delete temp;
}
return 0;
}
```
阅读全文