循环链表:将单链表中的终端结点的指针端由空指针指向头结点,就使整个单链表行程一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。
循环链表解决了从单链表中的任意一结点找到单链表中的任意一结点。
双向链表:在单链表的每个结点中,在设置一个指向其前驱的结点的指针域。所以在双向链表的每个结点中,都有两个指针域,一个指向直接后继,一个指向直接前驱。
双向链表的插入操作:
主意:插入操作的顺序是 先搞定待插入结点S的前驱和后继,再是后继结点的前驱,最后是前驱结点的后继。
双向链表的删除操作:
顺序问题不能乱,假设这样的一个case:一家三口逛街,爸爸在中间,爸爸的左后牵着妈妈,右手牵着孩子。这个时候,孩子突然要吃冰激凌,爸爸没办法只好离开去买了。但是爸爸不放心这么一离开,妈妈没有及时的牵着孩子的手,如是最担心的是孩子,所以走之前,先将孩子的手放在妈妈的手上,再去将妈妈的手牵住孩子。O(∩_∩)O~
链表总结:
单链表,静态链表,循环链表,双向链表。