学习参考: 严蔚敏: 《数据结构-C语言版》
-----和单链表类似,双链表一般也是由头指针唯一确定的,增加头指针也能使双链表上的某些运算变得方便,将头结点和尾结点链接起来也能构成循环链表,并称之为双向链表。
双向链表的基本操作
- 双向链表的建立
- 双向链表添加结点(头插法)
- 双向链表添加结点(尾插法)
- 双向链表的输出
- 双向链表的插入
- 双向链表的删除
- 双向链表按序号查找
- 双向链表按值查找
- 双向链表销毁
- 双向链表的长度
基本操作代码实现
双向链表的结点定义
typedef struct node
{
struct node* next;
struct node* prior;
int data;
}* pNode, Node;
双向链表的结构定义
typedef struct
{
pNode node;
int len;
}DoubleList,* pDList;
双向链表的建立
int initDoubleList(pDList list)
{
if(!list)
return 0;
l