1
算法与数据结构  C语言版
1.4.5 2.5 顺序表和单链表的比较
2.5 顺序表和单链表的比较

顺序表的主要优点是支持随机读取,以及内存空间利用效率高;顺序表的主要缺点是需要预先给出数组的最大数据元素个数,而这通常很难准确做到。当实际的数据元素个数超过了预先给出的个数时,会发生异常。另外,顺序表插入和删除操作时需要移动较多的数据元素。

和顺序表相比,单链表的主要优点是不需要预先给出数据元素的最大个数。另外,单链表插入和删除操作时不需要移动数据元素。

单链表的主要缺点是每个结点中要有一个指针,因此单链表的空间利用率略低于顺序表。另外,单链表不支持随机读取,单链表取数据元素操作的时间复杂度为O(n);而顺序表支持随机读取,顺序表取数据元素操作的时间复杂度为O(1)。

顺序表和链表各有长短。在实际应用中究竟选用哪一种存储结构呢?这要根据具体问题的要求和性质来决定。通常从以下几个方面考虑,如表2-3所示。

表2-3 顺序表和链表比较