什么是数据结构,上图:
数据结构有两种存储方式:
(1)顺序结构
(2)链式结构
为什么会这样呢?
主要原因在于内存空间的连续与不连续,连续的就是顺序结构,如列表,下标就体现了列表的连续性,一个接一个。
但是内存空间要不可能都是连续的,哪些分散的空间也要使用,这个时候怎么办呢?
这就需要一条绳子或者链子把他们连接起来,于是,这就有了链表。
链式结构分为两种,单链和双链。
那么问题来了,通过什么把他们连接起来呢?
这个时候就需要一个地址了,比如第一个节点不但保存自己的数据,同时也保存了下一个节点的地址。这样不就可以把他们串接起来了吗。这就是单链表。
但是这样只能通过前一个节点找后一个节点,如果后一个节点想找前一个节点这就没办法了?那这个时候应该怎么办呢?
方法很简单,后一个节点也记住前一个节点的地址不就可以了吗(机智),这样就可以前找后,也可以后找前,这样形成的结构就叫做双向链表。
那么什么叫做循环链表呢?
把链表的首位连接起来就是了,即头结点的前一个节点为尾节点,尾节点的后一个节点为头结点。这样就行成了一个首位相连的环状。
表达不够图片来凑,如下: