Algorithm / DataStructure

数组模拟单链表

192 字约 1 分钟

摘要介绍了如何用数组模拟单链表,并梳理头插、按位插入与删除等核心操作。

单链表

数组模拟链表比动态链表效率更高。

headhead 作为指向头结点的指针,idxidx 作为当前结点索引,每次执行完操作都要idx++;

数组 e[]e[] 用来保存当前结点的值,ne[]ne[] 用来保存指向的下一个结点编号。

将 −1-1 作为起始,表示结点为空,idxidx 从 00 开始,第一个添加的结点编号为 00。

在头结点插入就是将 idxidx 指向的结点变成 headhead 所指向的结点,再将 headhead 指向 idxidx 这个结点。

在编号为 kk 的结点后插入同理。

删除 kk 结点后面一个结点,就直接将 kk 结点所指向的结点变为原本 kk 指向的结点的下一个结点,即ne[ne[k]]

评论