链表的本质就是一个个串联的节点,由一个虚拟零节点和其他节点组成,末尾的节点指向空或者是零节点。
链表的节点i由三个部分组成:
1. 节点地址loca;
2. 节点的值val;
3. 下一个节点的地址next;
所以并不需要一定建立这样的节点结构,只要能够形成这三个要素就可以。
比如使用一个长度为n的数组或者vector A[n],A[0]作为零节点;
那么第i个节点,i->loca=i,i->val=A[i];
这里节点还缺少next,这样另建一个长度为n的数组或者vector next[n];
这样第i个节点的i->next=next[i];
这样一个链表就建立起来了。
在C++的STL中可以使用list这个双向链接的链表。