用C++实现动态链表的每个结点包括一个整数和一个后继指针。分别编写过程完成如下操作: 1) 从键盘输入数据建立链表,并按数据的输入顺序建立链表。 2) 依次打印其中各结点的数据。
时间: 2024-12-14 22:29:32 浏览: 8
在C++中,我们可以使用结构体定义一个动态链表节点,包含整数值和指向下一个节点的指针。这里我会展示如何实现这个链表以及两个操作:
首先,定义链表节点的结构体:
```cpp
struct Node {
int data;
Node* next; // 后继指针
};
```
接下来,我们创建一个函数用于从键盘输入数据并构造链表:
```cpp
Node* createList() {
Node* head = nullptr;
Node* current = nullptr;
int input;
std::cout << "请输入数据,输入0结束:" << std::endl;
while (true) {
std::cin >> input;
if (input == 0)
break;
Node* newNode = new Node();
newNode->data = input;
newNode->next = nullptr;
if (!head)
head = newNode;
else
current->next = newNode;
current = newNode;
}
return head;
}
```
然后,创建一个函数用于遍历并打印链表中的所有节点:
```cpp
void printList(Node* head) {
Node* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << std::endl;
}
```
现在你可以结合这两个函数来实现所需的功能:
```cpp
int main() {
Node* listHead = createList(); // 创建链表
if (listHead) { // 检查链表是否为空
printList(listHead); // 打印链表中的数据
delete listHead; // 清理内存(注意这只是一个简单的示例,实际应用中可能需要更复杂的方式来管理内存)
} else {
std::cout << "链表为空" << std::endl;
}
return 0;
}
```
当你运行这个程序时,它会提示你输入一系列的整数来构建链表,并在结束后打印出它们。
阅读全文