双向链表的操作特点:
(1) “查询” 和单链表相同;
(2)“插入” 和“删除”时需要同时修改两个方向上的指针。
但是对于双向循环链表则在表尾插入非常的迅速, 只需O(1)的时间,因为有指向前面的指针, 因此双向循环链表会很容易的找到位于表尾的元素,因此双向循环链表比较适用于频繁在表尾插入的情况.
空链表:

双向循环链表节点构造:
因为需要将其用于DoubleList类,因此需要将其改造如下:
双向循环链表构造:
链表的构造与析构:
链表元素插入与删除的两大主力:
提供给客户的插入:
提供给客户的删除:
查看是否存在于链表中:
输出链表所有元素(测试用):
测试代码: