链表特点
数据呈线性排列。链表中,增删较为方便,访问耗时。
在链表中,每个数据都有1个指针,它指向下一个数据的内存地址。
在链表中,数据一般都是分散存储于内存中,无须存储在连续空间内。
在链表中,数据访问只能从第1个数据开始,顺着指针的指向一一往下访问(顺序访问)。
链表运行时间
链表访问数据时,运行时间为O(n)
链表增删数据时,运行时间为O(1)
循环链表
链表的尾部如果使用指针,并且让它指向链表头部的数据,将链表变成环形。这就是循环链表,也叫环形链表。循环链表没有头尾的概念。想要保存数量固定的最新数据时通常会使用这种链表。
双向链表
链表的指针如果设定为两个,并且让它们分别指向前后数据,这就是双向链表。这种链表不仅可以从前往后,还可以从后往前遍历数据,十分方便。
双向链表的缺点
1:指针的增加会导致存储空间需求增加;
2:增删数据时需要改变更多指针的指向。