2.3线性表的链式表示和实现——2.3.2 循环链表,2.3.3双向链表

来源:互联网 发布:提刀探花在缅北 淘宝 编辑:程序博客网 时间:2024/06/03 16:14

循环链表是单向循环的,就是尾结点指向其头结点;结点只有后继指针,没有前驱。

当进行合并操作时候,循环表的运算时间复杂度为O(1)仅需要改变两个指针即可,如下图:


仅修改了尾指针的指向,如果给出的是头指针,那么也是只需改变头指针的指向。


双向的就是不但尾结点指向头结点,并且结点还有前驱指针,是双向指向。

在C语言中描述如下:

typedef struct DuLNode{ElemType data;struct DuLNode *prior;struct DuLNode *next;}DuLNode,*DuLinkList;

和单链的循环表类似,双向也可以有循环表;

如下图:


其它操作参考书籍上。