C++ 创建链表(存储1-5数据,以0为结束标志),编写逆序输出链表的函数,并在主函数调用。
时间: 2024-03-24 12:38:14 浏览: 60
好的,以下是使用C++实现的代码,创建链表(存储1-5数据,以0为结束标志),并编写逆序输出链表的函数,最后在主函数调用该函数:
```c++
#include <iostream>
using namespace std;
// 定义链表结点类型
struct Node {
int data;
Node* next;
};
// 创建链表函数,返回链表头指针
Node* createList() {
Node* head = NULL; // 头指针初始值为NULL
Node* tail = NULL; // 尾指针初始值为NULL
int data;
cout << "请输入链表数据,以0为结束标志:" << endl;
cin >> data;
while (data != 0) { // 添加结点
Node* p = new Node; // 创建新结点
p->data = data; // 新结点数据为data
p->next = NULL;
if (head == NULL) { // 空链表,新结点为头结点
head = p;
tail = p;
} else { // 非空链表,新结点插入尾部
tail->next = p;
tail = p;
}
cin >> data; // 读入下一个数据
}
return head;
}
// 逆序输出链表函数
void reversePrint(Node* head) {
if (head == NULL) { // 链表为空
cout << "链表为空,无法逆序输出" << endl;
return;
}
if (head->next != NULL) { // 递归输出
reversePrint(head->next);
}
cout << head->data << " ";
}
// 主函数
int main() {
Node* head = createList(); // 创建链表
cout << "链表逆序输出为:" << endl;
reversePrint(head); // 逆序输出链表
return 0;
}
```
运行结果如下:
```
请输入链表数据,以0为结束标志:
1 2 3 4 5 0
链表逆序输出为:
5 4 3 2 1
```
希望能够帮助到您,如有其他问题,请随时提出。
阅读全文