创建和输出链表 函数create()的功能是:建立动态链表,返回链表头指针head,要求从键盘输入各结点的数据,当输入值为0时停止结点的建立。print函数输出链表head中各个结点的data值。请将create函数和print函数补充完整。
时间: 2024-02-21 17:58:53 浏览: 91
好的,下面是代码实现:
```C++
#include <iostream>
using namespace std;
struct Node{
int data;
Node* next;
};
Node* create(){
Node* head = NULL;
Node* tail = NULL;
int value;
cin >> value;
while(value != 0){
Node* newNode = new Node;
newNode->data = value;
newNode->next = NULL;
if(head == NULL){
head = newNode;
tail = newNode;
}
else{
tail->next = newNode;
tail = newNode;
}
cin >> value;
}
return head;
}
void print(Node* head){
Node* p = head;
while(p != NULL){
cout << p->data << " ";
p = p->next;
}
}
int main(){
Node* head = create();
print(head);
return 0;
}
```
在create函数中,我们用一个while循环来不断读取用户输入的值,当输入值为0时停止结点的建立。每次读取到一个值就建立一个新结点,并将其添加到链表的末尾,然后更新tail指针。如果链表为空,则将head和tail都指向新结点。
在print函数中,我们用一个指针p来遍历整个链表,输出每个结点的data值。
最后,在main函数中,我们先创建链表,然后输出链表中各个结点的data值。
阅读全文