根据输入的一系列整数,以0标志结束,用尾插法建立单链表,并输出单链表中各元素值,观察输入的内容与输出的内容是否一致。
时间: 2024-05-02 07:18:49 浏览: 27
以下是Python代码实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
head = ListNode()
p = head
while True:
num = int(input())
if num == 0:
break
node = ListNode(num)
p.next = node
p = p.next
p = head.next
while p:
print(p.val, end=' ')
p = p.next
```
输入示例:
```
1
2
3
4
5
0
```
输出示例:
```
1 2 3 4 5
```
输入和输出结果一致。
相关问题
用c加加代码写一个尾插法,创建单链表,并输出单链表中的各元素值。
好的,以下是用 C++ 代码实现尾插法创建单链表,并输出单链表中的各元素值的示例:
```c++
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* createList() {
ListNode* head = new ListNode();
ListNode* tail = head;
int n;
cout << "请输入链表长度:";
cin >> n;
cout << "请输入链表各元素值:";
for (int i = ; i < n; i++) {
int val;
cin >> val;
ListNode* node = new ListNode(val);
tail->next = node;
tail = node;
}
return head->next;
}
void printList(ListNode* head) {
while (head) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
}
int main() {
ListNode* head = createList();
printList(head);
return ;
}
```
以上代码中,我们定义了一个 `ListNode` 结构体,表示链表的节点,包含一个整数值 `val` 和一个指向下一个节点的指针 `next`。然后,我们定义了一个 `createList` 函数,用于创建单链表,其中使用尾插法插入节点,最后返回链表的头节点。最后,我们定义了一个 `printList` 函数,用于输出链表中的各元素值。在 `main` 函数中,我们先调用 `createList` 函数创建链表,然后调用 `printList` 函数输出链表中的各元素值。
用C语言实现从键盘依次输入正整数,利用尾插法形成单链表依次输出,再将输入的数据逆序建立单链表并输出。
好的,我可以回答这个问题。
以下是用C语言实现从键盘输入正整数,利用尾插法形成单链表并输出的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义单链表的结构体
typedef struct ListNode {
int val;
struct ListNode *next;
} ListNode;
// 尾插法建立单链表
ListNode* createList() {
ListNode *head = NULL, *tail = NULL;
int num;
while (scanf("%d", &num) == 1 && num > 0) {
ListNode *node = (ListNode*) malloc(sizeof(ListNode));
node->val = num;
node->next = NULL;
if (head == NULL) {
head = tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
// 输出单链表
void printList(ListNode* head) {
while (head != NULL) {
printf("%d ", head->val);
head = head->next;
}
printf("\n");
}
int main() {
// 读入数据并建立单链表
printf("Please input integers separated by spaces, end with a non-positive integer:\n");
ListNode *head = createList();
// 输出单链表
printf("The linked list is:\n");
printList(head);
return 0;
}
```
接下来是将输入的数据逆序建立单链表并输出的代码:
```c
// 将单链表逆序
ListNode* reverseList(ListNode* head) {
if (head == NULL || head->next == NULL) {
return head;
}
ListNode *prev = NULL, *cur = head, *next = head->next;
while (cur != NULL) {
cur->next = prev;
prev = cur;
cur = next;
if (next != NULL) {
next = next->next;
}
}
return prev;
}
int main() {
// 读入数据并建立单链表
printf("Please input integers separated by spaces, end with a non-positive integer:\n");
ListNode *head = createList();
// 输出单链表
printf("The linked list is:\n");
printList(head);
// 将单链表逆序
head = reverseList(head);
// 输出逆序后的单链表
printf("The reversed linked list is:\n");
printList(head);
return 0;
}
```
希望这个回答能够帮到你!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)