九月十四号
#include <iostream>
using namespace std;
struct Node
{
int data;
Node* next;
};
struct List
{
Node* head;
int length;
};
int main()
{
List L;
L.head = nullptr;
L.length = 0;
int n;
cin >> n;
Node *current = nullptr;
for (int i = 0; i < n; i++)
{
int data;
cin >> data;
Node *newNode = new Node;
newNode->data = data;
newNode->next = nullptr;
if (L.head == nullptr)
{
L.head = newNode;
current = newNode;
} else
{
current->next = newNode;
current = newNode;
}
L.length++;
}
int m;
cin >> m;
for (int i = 0; i < m; i++)
{
int op, k;
cin >> op >> k;
if (op == 0)
{
int d;
cin >> d;
if (k < 0 || k > L.length)
{
continue;
}
Node *newNode = new Node;
newNode->data = d;
if (k == 0)
{
newNode->next = L.head;
L.head = newNode;
}
else
{
Node *prev = L.head;
for (int j = 0; j < k - 1; j++)
{
prev = prev->next;
}
newNode->next = prev->next;
prev->next = newNode;
}
L.length++;
}
else if (op == 1)
{
if (k <= 0 || k > L.length)
{
continue;
}
Node *prev = nullptr;
Node *curr = L.head;
for (int j = 0; j < k - 1; j++)
{
prev = curr;
curr = curr->next;
}
if (prev == nullptr)
{
L.head = curr->next;
} else
{
prev->next = curr->next;
}
delete curr;
L.length--;
}
}
// 输出链表
Node *curr = L.head;
while (curr != nullptr)
{
cout << curr->data << " ";
curr = curr->next;
}
// 释放链表内存
curr = L.head;
while (curr != nullptr)
{
Node *temp = curr;
curr = curr->next;
delete temp;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix