主要有以下三种不同:
1.存储方式不同
数组是连续存储的,数组在创建时需要一整块空间。
链表是链式存储,链表在内存空间中不一定是连续的。
数组一般创建在栈区。
而链表一般创建在堆区,在增加节点时需要new和malloc新节点,相较于数组长度不固定自由度高。
2.访问元素方式不同
数组可以通过下标随机访问,单向链表只能通过头节点从前向后访问链表中的元素。
3.增删效率不同
数组在插入或删除时需要移动数组中的其他元素,时间复杂度为0(n)。
链表在进行插入删除时,只需要找到插入或删除的位置,时间复杂度为o(1)。
优劣选择:
当线性表进行大量的插入删除操作时建议使用链表,如果对线性表进行查找操作,较少进行插入和删除的话建议使用数组。