结构:
head→x→x→x→x→ -1
代码:
// 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];
}
注意删除和插入都是在链表头部进行
插入过程:
初始 head=-1 idx=0
序号 | 值 | next指针 ne | 头指针head (下一个节点的ne) | 插入后序号idx |
0 | a | -1 | 0 | 1 |
1 | b | 0 | 1 | 2 |
2 | c | 1 | 2 | 3 |
删除过程:
让head等于头结点的ne