单链表vs双链表
就是既有前驱指针也有后继指针,由line改为double。
双链表的插入怎么实现?
s->next=p->next;
p->next->prior=s
s->prior=p //把p赋给s的前驱指针指向的位置
p->next=s;
如果p刚好是最后一个元素。
p->next->prior=s //会出现前驱指针空指针的错误
就不用执行把s赋给NULL的前驱指针指向的位置。
这就是p结点之后的插入操作。
双链表的删除
p->next=q->next
q->next->prior=p //把p赋给q的next指针指向的位置的前驱指针指向的位置
释放q。
同样如果删除最后一个元素‘
如何销毁一个双链表
双链表的遍历
so easy
按位查找(计数器)进行遍历
按值查找
进行值的对比
多了一个前驱的指针(最后一个节点,需要特殊处理)