双链表的没一个元素都是对象,每个对象包含一个关键字域和两个指针域(next,prev)。当然,每个对象还可能包含一些其他的卫星数据。next指向后继节点,prev指向前驱节点。如果prev[x] == null,则无前驱节点,是head头节点。如果next[x] == null则无后继节点,是最后一个节点,即尾节点tail。
双链表的具体操作如下:
双向链表的插入:insert(L, x)
next[x]=head[L] //头插法,当前节点x的下一个节点指向头节点
if head[L] != null // 头节点不为空
then prev[head[L]] = x //头节点的上一个节点指向x
head[L] = x //重置头节点
prev[x] = null //头节点的上一个节点置为空