单链表
数组模拟链表比动态链表效率更高。
\(head\) 作为指向头结点的指针,\(idx\) 作为当前结点索引,每次执行完操作都要idx++
;
数组 \(e[]\) 用来保存当前结点的值,\(ne[]\) 用来保存指向的下一个结点编号。
将 \(-1\) 作为起始,表示结点为空,\(idx\) 从 \(0\) 开始,第一个添加的结点编号为 \(0\)。
在头结点插入就是将 \(idx\) 指向的结点变成 \(head\) 所指向的结点,再将 \(head\) 指向 \(idx\) 这个结点。
在编号为 \(k\) 的结点后插入同理。
删除 \(k\) 结点后面一个结点,就直接将 \(k\) 结点所指向的结点变为原本 \(k\) 指向的结点的下一个结点,即ne[ne[k]]