线性表中的元素之间是一对一的关系,除了第一个元素外,其他元素只有唯一的直接前驱,除了最后一个元素外,其他元素只有唯一的直接后继。
线性表有顺序存储和链式存储两种存储方式。采用顺序存储结构的线性表称为顺序表,采用链式存储结构的线性表称为链表。
顺序表中数据元素的逻辑顺序与物理顺序一致,因此可以随机存取。链表是靠指针域表示元素之间的逻辑关系。
链表又分为单链表和双向链表,这两种链表又可构成单循环链表、双向循环链表。单链表只有一个指针域,指针域指向直接后继结点。双向链表的一个指针域指向直接前驱结点,另一个指针域指向直接后继结点。
顺序表的优点是可以随机存取任意一个元素,算法实现较为简单,存储空间利用率高,缺点是需要预先分配存储空间,存储规模不好确定,插入和删除操作需要移动大量元素。链表的优点是不需要事先确定存储空间的大小,插入和删除元素不需要移动大量元素;缺点是只能从第一个结点开始顺序存取元素,存储单元利用率不高,算法实现较为复杂,因涉及指针操作,操作不当,会产生无法预料的内存错误。