给出完整的C++代码:设计一个单向链表。从标准输入读取若干整数,建立链表,每次读入的数放入链表结尾。当用户输入 0时,结束链表的建立工作。然后从前往后依次输出链表节点中的内容。 每个节点包含两个值,一个是真正存放的整数值,另一个为指向链表中下一个节点的指针。链表中最后一个节点不指向任何节点,所以指针为空(NULL)。表头指针和表尾指针分别指向链表的头节点和尾节点。 (如使用注释,请使用中文注释)
时间: 2023-07-10 14:05:04 浏览: 138
用C++实现单向链表
4星 · 用户满意度95%
以下是完整的C++代码实现:
```cpp
#include <iostream>
using namespace std;
// 定义节点结构体
struct Node
{
int value; // 存放的整数值
Node* next; // 指向下一个节点的指针
};
int main()
{
Node* head = NULL; // 头节点指针
Node* tail = NULL; // 尾节点指针
int num;
cin >> num;
while(num != 0)
{
Node* newNode = new Node(); // 创建新节点
newNode->value = num; // 存放整数值
newNode->next = NULL; // 初始指针为空
if (head == NULL) // 如果头节点为空,说明链表为空
{
head = newNode; // 将头节点指向新节点
tail = newNode; // 将尾节点也指向新节点
}
else
{
tail->next = newNode; // 将尾节点的指针指向新节点
tail = newNode; // 将尾节点指向新节点
}
cin >> num; // 继续读取输入
}
// 遍历链表输出节点内容
Node* cur = head;
while (cur != NULL)
{
cout << cur->value << " ";
cur = cur->next;
}
cout << endl;
// 释放链表内存
cur = head;
while (cur != NULL)
{
Node* temp = cur;
cur = cur->next;
delete temp;
}
return 0;
}
```
以上代码通过循环读取输入的整数,并将其存储在链表节点中。当输入0时,链表建立完成。最后遍历链表输出节点内容,并释放链表内存。
阅读全文