文中链接附上java版代码
1.单链表
单链表是一种链式存储的数据结构,方便插入/删除数据元素,对比数组,在进行插入删除等操作时,更节省空间。单链表中每一个结点的构成都是由数据元素+指针构成的
2.单循环链表
单循环链表与单链表的区别就是,单循环链表的尾指针指向头结点,可以想象成一个环,首尾相连,这时候需要考虑两种情况:
1.不带头结点
2.带头节点
不带头节点的情况:
对比单链表,直接尾结点的指针指向头节点就好了
带头节点的情况:
尾结点指向头结点的下一个结点,头结点不保存数据。
3.双链表:
顾名思义,双向链表。每个结点中有两个指针,一个指向该结点的前一个结点(前驱结点),一个指向该结点的下一个结点(后继结点)。同上文,此处一样需要考虑是否带头结点。
4.双循环链表
双循环链表与双链表的区别是头结点的前驱是尾结点,尾结点的后驱是头结点。
同样考虑是否带头结点。
注:文中所说考虑是否带头结点的意思是是否带有一个不保存数据的头结点,不对他进行额外的操作,只作为一个访问链表中第一个保存数据的结点(即文中其他地方所说的保存数据的头结点)的入口。
单链表/单循环链表/双循环链表可以参考我的以下博客:
1.JAVA单链表的简单操作(递增单链表插入数据,链表逆置,链表逆序合成)
2.JAVA单循环链表和双循环链表简单操作