相比数组,链表是一种稍微复杂一点的数据结构。对于初学者来说,掌握起来也要比数组稍微难一些。这两个非常基础,非常常用的数据结构,我们常常将他们放在一块来比较。所以我们先来看,这两者有什么区别。
我们先从底层的存储结构上来看一看。
为了直观地对比,我画了一张图。从图中我们看到,数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个100MB大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于100MB,仍然会申请失败。
而链表恰恰相反,它并不需要一块连续的内存空间,它通过"指针"将一组零散的内存块串联起来使用,所以如果我们申请的是100MB大小的链表,根本不会有问题。
链表结构五花八门,今天我重点给你介绍三种最常见的链表结构,它们分别是:单链表、双链表和循环链表。我们首先来看最简单,最常见的单链表。
我们刚刚讲到,链表通过指针将一组零散的内存块串联在一起。其中,我们把内存块称