单链表的数组实现
用数组来实现单链表,并支持链表的各种操作,能在OJ测试中获得更快的速度(理解记忆很easy)。
实现一个单链表,链表初始为空,支持三种操作:
(1) 链表头插入一个数;
(2) 删除第k个插入数的后面的数;
(3) 在第k个插入的数后插入一个数
代码实现:
#include <iostream> using namespace std; const int N = 100010; // head 表示头结点的下标 // e[i] 表示节点i的值 // ne[i] 表示节点i的next指针是多少 // idx 存储当前已经用到了哪个点 int e[N], ne[N], head, idx; // 初始化 int init () { head = -1; idx = 0; } // 将x插到头结点(头插法) int add (int x) { e[idx] = x; ne[idx] = head; head = idx++; } // 将下标是k的点后面的点删掉 int remove (int k) { ne[k] = ne[ne[k]]; } // 将x插到下标是k的点后面 int add_k (int k, int x) { e[idx] = x; ne[idx] = ne[k]; ne[k] = idx++; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!