我们知道,单链表通过首尾连接可以构成单向循环链表,如图 1 所示:
图 1 单向循环链表示意图
同样,双向链表也可以进行首尾连接,构成双向循环链表。如图 2 所示:
图 2 双向循环链表示意图
解决某些问题,可能既需要正向遍历数据,又需要逆向遍历数据,这时就可以考虑使用双向循环链表。
双向循环链表的创建
创建双向循环链表,只需在创建完成双向链表的基础上,将其首尾节点进行双向连接即可。
C 语言实现代码如下:
//创建双向循环链表
Line* initLine(Line* head) {
int i;
Line* list = NULL;
head = (Line*)malloc(sizeof(Line));//创建链表第一个结点(首元结点)
head->prior = NULL;
head->next = NULL;
head->data =