C++请创建动态链表,存储整型数据1-10(提示:每个结点存一个整数),并编写代码输出链表尾结点的前驱结点(倒数第二个结点)
时间: 2024-01-21 08:03:03 浏览: 27
好的,以下是使用C++实现的代码,创建动态链表,存储整型数据1-10,并输出链表尾结点的前驱结点(倒数第二个结点):
```c++
#include <iostream>
using namespace std;
// 定义链表结点类型
struct Node {
int data;
Node* next;
};
// 创建链表函数,返回链表头指针
Node* createList() {
Node* head = NULL; // 头指针初始值为NULL
Node* tail = NULL; // 尾指针初始值为NULL
int i;
for (i = 1; i <= 10; i++) { // 添加10个结点
Node* p = new Node; // 创建新结点
p->data = i; // 新结点数据为i
p->next = NULL;
if (head == NULL) { // 空链表,新结点为头结点
head = p;
tail = p;
} else { // 非空链表,新结点插入尾部
tail->next = p;
tail = p;
}
}
return head;
}
// 输出链表尾结点的前驱结点
void printSecondLast(Node* head) {
Node* p = head;
if (p == NULL || p->next == NULL) { // 链表为空或只有一个结点
cout << "链表为空或只有一个结点,无法输出倒数第二个结点" << endl;
return;
}
while (p->next->next != NULL) { // 遍历到倒数第二个结点
p = p->next;
}
cout << "链表尾结点的前驱结点为:" << p->data << endl;
}
// 主函数
int main() {
Node* head = createList(); // 创建链表
printSecondLast(head); // 输出链表尾结点的前驱结点
return 0;
}
```
运行结果如下:
```
链表尾结点的前驱结点为:9
```
希望能够帮助到您,如有其他问题,请随时提出。