空间性能的比较
这里是拿顺序表和单链表为例来做比较的
1、储存空间的分配
顺序表的储存空间必须预先分配,元素个数扩充受一定限制,容易造成存储空间的浪费或空间溢出现象;而链表不需要预先分配空间,只要内存空间允许,链表中元素个数就没有限制。因此,当一个线性表元素个数难以预测时,宜采用链式存储。
2、空间利用率
链表的每个结点除了储存数据元素外,还额外储存了指示元素之间逻辑关系的地址,从储存密度上讲,这是不经济的,储存密度是指数据元素本身所占用的存储量和整个结点结构所占用的存储量之比,存储密度越大,存储空间的利用率就越高。顺序表的存储密度为1,而链表的存储密度小于1,例如单链表的空间利用率只有50%,而顺序表的空间利用率为100%。因此,当线性表的数据个数事先能确定时,为了节省空间,宜采用顺序存储。
时间性能的比较
1、插入和删除元素的效率
对于链表来说,在确定插入和删除元素的位置后,插入或删除操作无需移动元素,只需要修改指针域,所以时间复杂度为O(1),而对于顺序表来说,进行插入和删除操作时,需要有大量的元素移动,所以时间复杂度为O(N)。(注意:前面说的链表的插入和删除是在确定位置的情况下,但是实际情况是链表的插入和删除是在查找的基础上进行的,所以严格来说时间复杂度应该是O(N)