循环链表就是首尾相连的一种链表,循环链表中第一个节点之前是最后一个节点,反之亦然。循环链表也分为单向循环链表和双向循环链表,如下图所示。
循环链表的插入和删除可以参考 单向链表 和 双向链表 ,这里就不在重复介绍。循环链表除了首尾相连以外,与单向链表和双向链表并没有太大区别。使用循环链表的时候最好添加一个哑节点 dummy 作为循环链表的头节点,这个节点不存储任何数据,这样无论添加或者是删除节点都不会导致头节点的随意变动。
数组,滚动数组,差分数组,树状数组 | |
链单向表,双向链表,循环链表,跳表,异或链表 | |
队列,循环队列,双端队列 | |
栈 | |
散列表 | |
二叉树,二叉搜索树,AVL树,红黑树,字典树,哈夫曼树,线段树,笛卡尔树 | |
堆 | |
图的介绍,图的遍历,Dijkstra算法,Bellman-Ford算法,SPFA算法,Floyd算法,Prim算法,Kruskal算法,Boruvka算法,拓扑排序 |