数组 & 链表 物理结构上的差异,导致了他们在访问、增加、删除节点这三种操作上所带来的时间复杂度不同 访问 数组在物理内存上是连续存储的,硬件上支持 随机访问链表也没有下标的概念,只能通过头节点指针,从每一个节点,依次往下找,是顺序访问 增加 数组在内存中是连续存储的,要想在某个节点之前增加,必须要把此节点往后的元素依次后移链表中只需要改变节点中的“指针”,就可以实现增加,这样能实现动态扩容 删除 同理内存管理 内存管理会将连续的存储空间提前读入缓存(局部性原理),所以数组往往会被都读入到缓存中,这样进一步提高了访问的效率链表由于在内存中分布是分散的,往往不会都读入到缓存中