双链表:一个数据域+两个指针域;比单链表多一个指针,前prev:保存上一个数据的地址,后next:保存下一个数据的地址,可双向遍历。
一、结构体(数据域+两个指针域)
二、创建空链表
创建头节点(malloc一块空间),让头节点前后都接NULL。
三、判断链表是否为空
四、打印
五、头插
六、尾插
七、查找
八、更新
九、头删
十、尾删
找到尾节点(要删除的节点)的前一个节点,让他后指向空。
十一、删除指定节点
先找到值k在删除;让k的前一个节点后接k的下一个节点,如果k不是尾结点,在让他的下一个节点前接k的上一个节点,如果是尾结点就没有下一个节点,直接释放。
十二、销毁
如果链表是空,就直接释放头节点;如果不是空,销毁需要从头结点的下一个节点(首节点)开始,一个指针记录要销毁的节点另一个指针记录要销毁节点的下一个节点,如果不记录上一个节点一销毁,就找不到后面的节点了。