1.顺序表:
优点:
顺序表的内存空间连续。
尾插、尾删效率较高,时间复杂度是O(1)。
支持随机访问,可以高效的按下标进行操作,时间复杂度是O(1)。
缺点:
在顺序表中间插入或删除元素时都涉及到元素的移动,效率较低,时间复杂度为O(N)。
顺序表长度固定,有时需要扩容。
2.链表:
优点
链表的内存空间不连续。
如果知道要处理节点的前一个位置,则进行插入和删除的复杂度为O(1);
如果不知道要处理节点的前一个位置,则进行插入和删除的复杂度为O(N)。
头插、头删的效率高,时间复杂度是O(1)。
没有空间限制,不会溢出,可以存储很多元素。
缺点:
链表不支持随机访问,查找元素效率低,需要遍历节点,时间复杂度是O(1)。
3.总结
当线性表的长度变化不大、易于确定其大小时,采用顺序表作为存储结构。
若线性表主要操作是查找。很少进行插入或删除操作时,采用顺序表作为存储结构。
对于频繁进行插入和删除的线性表,则应该使用链表作为存储结构。