循环链表

好处是从表中任意一点出发均可找到表中其他节点

遍历操作的终止条件是p!=L

循环链表的合并

将a表的尾节点指针域指向b表的第一个节点;b的尾结点指向a表的头节点;释放b表的头节点;

双向链表

具体算法

  • 插入元素(在i位置之前插入元素e)
    1. if(!(p=Getelemp*Dul(L,i))) return ERROR;*找到要被插入的节点_
    2. S=new DulNode;S->data=e;
    3. S->prior=p->prior;p->prior->next=S;
    4. S->next=p;p->prior=s;
  • 删除元素

双链表更方便了,但是存储空间更大,插入元素要修改更多的指针。

各种链表的时间效率比较

链表的使用场景是需要频繁增加删除元素;

顺序表的使用场景是不经常增删,却经常改查;