数据结构:写给初学者的直觉图解

这一篇不讲复杂的数学推导,而是尝试用几幅图,说明「为什么需要不同的数据结构」以及「它们各自擅长做什么」。

便利贴和方块,有序排列成不同结构

一、数组:排排坐好的一排格子

数组(Array)最像的是一排编号好的储物柜:第 0 号柜子、第 1 号柜子……你可以根据编号快速找到对应的格子。

排成一排的储物柜,比喻数组
数组 = 有编号的一排小格子,按位置读取特别快。

二、链表:用线连起来的一串纸条

链表(Linked List)则像是一串通过回形针连在一起的纸条,每张纸上不仅写了内容,还写了「下一张纸在哪」。

可以简单记住:数组擅长随机访问,链表擅长频繁插入删除

三、栈与队列:一个先进后出,一个先进先出

这两个数据结构特别适合用生活中的排队类比:

  • 栈(Stack):像叠盘子,后放上去的先拿走(LIFO);
  • 队列(Queue):像排队买票,先来的人先服务(FIFO)。
排队与叠放书本的场景,比喻队列与栈
生活中到处都有栈与队列的影子。

四、哈希表:帮你「一秒翻到某一页」的索引

哈希表(Hash Table)有点像书的「索引页」:你根据关键词,就能很快翻到对应的页码。 它的核心目标只有一个:快速查找

💡 为什么要先学数据结构再学算法?

算法更像是「操作规则」,而数据结构是「存东西的容器」。 不清楚容器的特性,很难真正理解算法的优劣。