链表
链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思就是说,链表就是将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。
所以,链表允许插入和删除表上任意位置上的节点,但是不允许随即存取。链表有很多种不同的类型:单向链表、双向链表及循环链表。
单向链表
一个data,一个next指针
双向链表
单向链表的升级,一个pre,一个data,一个next
循环链表
双向链表的延伸,形成环状
单链和双链的区别
单链只能由上一个往下一个找
而双链可以往上,也可以往上找