链表是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。链表由一系列结点组成,结点可以在运行时动态生成。每个结点包括存储数据元素的数据域和存储下一个结点地址的指针域两个部分。相比于线性表顺序结构,操作复杂。数据元素的逻辑顺序也是通过链表中的指针链接次序实现的。
线性表的链式存储表示的特点是用一组任意的存储单元存储线性表的数据元素。因此,为了表示每个数据元素与其直接后继数据元素之间的逻辑关系,对数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息。由这两部分信息组成一个结点,表示线性表中一个数据元素。线性表的链式存储表示,有一个缺点就是要找一个数,必须要从头开始找起,十分麻烦。
1、链表解决数组无法存储多种数据类型的问题。
2、链表解决数组中,元素个数无法改变的限制。
3、数组移动元素的过程中,要对元素进行大范围的移动,很耗时间,效率也不高。