主要有以下三种不同:

1.存储方式不同

数组是连续存储的,数组在创建时需要一整块空间。

链表是链式存储,链表在内存空间中不一定是连续的。

数组一般创建在栈区。

而链表一般创建在堆区,在增加节点时需要new和malloc新节点,相较于数组长度不固定自由度高。

2.访问元素方式不同

数组可以通过下标随机访问,单向链表只能通过头节点从前向后访问链表中的元素。

3.增删效率不同

数组在插入或删除时需要移动数组中的其他元素,时间复杂度为0(n)。

链表在进行插入删除时,只需要找到插入或删除的位置,时间复杂度为o(1)。

优劣选择:

当线性表进行大量的插入删除操作时建议使用链表,如果对线性表进行查找操作,较少进行插入和删除的话建议使用数组。