2.编程实现如下功能: (1)根据输入的一系列整数,以0标志结束,用头插法建立单链表,并输出单链表中各元素值,观察输入的内容与输出的内容是否一致。 (2)在单链表的第i个元素之前插入一个值为x的元素,并输出插入后的单链表中各元素值。 (3)删除单链表中第i个元素,并输出删除后的单链表中各元素值。 (4)在单链表中查找第i个元素,如果查找成功,则显示该元素的值,否则显示该元素不存在。
时间: 2023-04-29 16:05:57 浏览: 341
1. 根据输入的一系列整数,以头插法建立单链表,并输出单链表中各元素值,观察输入的内容与输出的内容是否一致。
2. 在单链表的第一个元素之前插入一个值为x的元素,并输出插入后的单链表中各元素值。
3. 删除单链表中第一个元素,并输出删除后的单链表中各元素值。
4. 在单链表中查找第一个元素,如果查找成功,则显示该元素的值,否则显示该元素不存在。
相关问题
编程实现如下功能: (1)根据输入的一系列整数,以0标志结束,用头插法建立单链表,并输出单链表中各元素值,观察输入的内容与输出的内容是否一致, (2)在单链表的第i个元素之前插入1个值为x的元素,并输出插入后的单链表中各元素值。 (3)删除单链表中第i个元素,并输出删除后的单链表中各元素值。 用c++实现
以下是用C++实现的代码:
```c++
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* createList() {
int num;
ListNode* head = new ListNode(0);
ListNode* p = head;
cout << "请输入一系列整数(以0结束):" << endl;
cin >> num;
while (num != 0) {
ListNode* node = new ListNode(num);
p->next = node;
p = p->next;
cin >> num;
}
return head->next;
}
void printList(ListNode* head) {
cout << "单链表中各元素值为:" << endl;
ListNode* p = head;
while (p) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
ListNode* insert(ListNode* head, int i, int x) {
ListNode* p = head;
int count = 0;
while (p && count < i - 1) {
p = p->next;
count++;
}
if (p) {
ListNode* node = new ListNode(x);
node->next = p->next;
p->next = node;
}
return head;
}
ListNode* remove(ListNode* head, int i) {
ListNode* p = head;
int count = 0;
while (p && count < i - 1) {
p = p->next;
count++;
}
if (p && p->next) {
ListNode* temp = p->next;
p->next = temp->next;
delete temp;
}
return head;
}
int main() {
ListNode* head = createList();
printList(head);
int i, x;
cout << "请输入要插入的位置和值:" << endl;
cin >> i >> x;
head = insert(head, i, x);
printList(head);
cout << "请输入要删除的位置:" << endl;
cin >> i;
head = remove(head, i);
printList(head);
return 0;
}
```
其中,createList()函数用于创建单链表,printList()函数用于输出单链表中的元素值,insert()函数用于在单链表的第i个元素之前插入一个值为x的元素,remove()函数用于删除单链表中的第i个元素。
根据输入的一系列整数,以0标志结束,用尾插法建立单链表,并输出单链表中各元素值,观察输入的内容与输出的内容是否一致。
以下是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
```
输入和输出结果一致。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)