《大话数据结构》笔记(3-4)--线性表的链式存储结构:循环链表、双向链表

双向循环链表的Java实现代码:
 

第三章  线性表

循环链表(circular linked list)
基本概念
将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表
 
循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断p->next是否为空,现在则是判断p->next是否等于头结点。
 
带有头结点的空循环链表:
 非空的循环链表:

尾指针对两个循环链表的合并操作也非常方便
 
 
双向链表(double linked list)
双向链表是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。
 
线性表的双向链表存储结构如下:
 
双向链表的循环、带头结点的空链表如下:
 
非空、循环、带头结点的双向链表如下:
 
双向链表的插入操作
 
 
双向链表的删除操作
 
双向链表说白了就是空间换时间。
原文地址:https://www.cnblogs.com/lyu0709/p/6780257.html