数组模拟链表
e[i]表示结点的值, ne[i]表示结点的next指针指向的结点下标,idx用来记录结点实际分配的地址(物理地址)下标。(实际上,这种用数组模拟链表的方法就是数据结构中学的静态链表法)
具体代码:
// head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点
int head, e[N], ne[N], idx;
// 初始化
void init()
{
head = -1;
idx = 0;
}
// 在链表头插入一个数a
void insert(int a)
{
e[idx] = a, ne[idx] = head, head = idx ++ ;
}
// 将头结点删除,需要保证头结点存在
void remove()
{
head = ne[head];
}