数组模拟单链表

过程图解

注意:head和idx的初始化。

  • 1,首先获取数值。e[idx]=x
  • 2,然后指针ne[idx]=head指向head所指向的
  • 3,最后head指向idx,然后idx加一。head=idx++
    数组模拟单链表.png

源码

初始化

int e[N], ne[N], idx, head = -1;

头插法

void add_head(int x)
{
    e[idx] = x, ne[idx] = head, head = idx ++;
}

删除值为num的

for (int i = head; i != -1; i = ne[i])
{
    if (e[ne[i]] == num)
    {
        ne[i] = ne[ne[i]];
    }
}

遍历

for (int i = head; i != -1; i = ne[i])
{
    cout << e[i] << ' ';
}
THE END