输入若干个正整数(输入-1 为结束标志),建立一个单向链表,再输入一个数m,插入第i个结点后面并输出链表。
时间: 2024-03-07 08:48:44 浏览: 115
好的,我可以为您提供一个基本的算法实现,具体如下:
1. 定义链表结点结构体:
```c++
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
```
2. 读入若干个正整数并建立链表:
```c++
ListNode* head = new ListNode(0);
ListNode* p = head;
int x;
while (true) {
cin >> x;
if (x == -1) break;
ListNode* node = new ListNode(x);
p->next = node;
p = node;
}
```
3. 插入第i个结点后面:
```c++
int i, m;
cin >> i >> m;
p = head->next;
while (i > 1 && p != nullptr) {
p = p->next;
i--;
}
if (p != nullptr) {
ListNode* node = new ListNode(m);
node->next = p->next;
p->next = node;
}
```
4. 输出链表:
```c++
p = head->next;
while (p != nullptr) {
cout << p->val << " ";
p = p->next;
}
```
完整代码如下:
阅读全文