1.储存分配方式:
顺序存储结构:一组连续的储存空间 依次 存放线性表中的数据元素;链式存储结构:一组任意的储存空间 存放线性表中的数据元素
2.时间性能:(时间复杂度)
顺序存储结构:查找操作O(1), 插入和删除操作需要移动平均超过一半的数据元素O(n)链式存储结构:查找操作O(n), 插入和删除时不需要移动大量的数据元素(只是节点指针在移动)O(1)
3.空间性能
顺序存储结构:预先分配储存空间,造成储存空间浪费或者分配储存空间过小问题链式存储结构:临时开辟储存空间,只要内存够,就能分配。
顺序表优点:
时间上讲:可以顺序存储,也可以直接存储,访问速度快,
空间上讲:储存利用率高,不需要用指针。
顺序表缺点:
时间上讲:插入或者删除时,如果想把保持原先的顺序,必须要平均移动一般的数据元素,因此更新速度慢。
空间上讲:如果采用静态分配的储存结构,一旦储存数组的空间已满,不能扩充,插入的新元素将溢出;
链表优点:
时间上讲:插入和删除操作不需要移动大量的元素,只需要移动指针,更新速度快;
空间上讲:链表基本没有溢出和满的情况,只要内存可以分配节点,就可以扩充;
链表缺点:
时间上讲:链表只能顺序访问,查找一个元素平均需要搜索半个链表,访问速度慢;
空间上讲:每个元素需要一个附加指针,储存效率较低;链表单线联系的特性,操作不慎,会出现断链,将会丢失后面所有的元素;
总结:
1.当事先不能确定线性表的大小时,可采取链式结构,便于扩充
2.当需要频繁查找或存取线性表中元素而增删操作较少时,可采取顺序存储结构,有利于查找和存取速度。
3.需要频繁增删表中元素时,应采用链式存储结构。
[img=http://i.WoTuLa.com/wp.png]