存取方式
顺序表可以实现顺序存取和随机存取
单链表只能实现顺序存取
逻辑结构和物理结构
顺序表:逻辑相邻物理上也相邻,通过相邻表示逻辑关系
单链表:逻辑相邻物理上不一定相邻,通过指针表示逻辑关系
基本操作
插入&删除:
单链表为【O(1)(节点指针已知)O(n)(节点指针未知)】,而且操作时只需修改指针
顺序表为O(n),而且需要移动大量元素
插入操作:
删除操作:
查找操作
按值查找中单链表和顺序表(无序)都为O(n)
按序查找中单链表为O(n),顺序表为O(1)
内存空间
顺序存储:
无论是静态分配还是非静态分配都需要预先分配合适的内存空间
静态分配时预分配空间太大会造成浪费,太小会造成溢出
动态分配时虽不会溢出,但是扩充需要大量移动元素,操作效率低
链式存储:
在需要时分配节点空间即可,高效方便,但指针需要使用额外的空间