带头双向循环链表的元素位置查找.
带头双向循环链表的任意指定元素前插入.
带头双向循环链表的尾删.
带头双向循环链表的头删.
带头双向循环链表的任意指定元素删除.
带头双向循环链表打印....:
如图,我们在尾插时首先要找到原链表的尾,即head->prev,然后我们需要改变四个指针的指向关系:
使旧尾的next连接上newnode
使newnode的prev连接上旧尾
使head的prev...prev = newnode;
newnode->next = phead;
}
7.带头双向循环链表元素的头插
头插示意图:
如图,我们在头插时首先需要找到旧头,即head->next,然后需要改变四个指针的指向关系...因为,如果我们先更改了head的next指针的指向,后续想要找到旧头就只能再循环遍历一遍链表了,这样会非常麻烦....了解了这点后,带头双向循环链表的打印逻辑很简单,顺着头指针的后一个结点向后循环遍历打印整个链表结点的数据域即可,当遍历指针再次走到head结点时,则代表已经遍历打印完链表的所有元素,这时跳出循环即可.