# 序言

**原文**：[The top data structures you should know for your next coding interview](http://link.zhihu.com/?target=https%3A//medium.freecodecamp.org/the-top-data-structures-you-should-know-for-your-next-coding-interview-36af0831f5e3)

**译者**：[Fundebug](http://link.zhihu.com/?target=https%3A//www.fundebug.com/)

1976年，一个瑞士计算机科学家写一本书《Algorithms + Data Structures = Programs》。即：**算法 + 数据结构 = 程序**。40多年过去了，这个等式依然成立。

### 什么是数据结构？&#x20;

数据结构是计算机存储、组织数据的方式。对于特定的数据结构(比如数组)，有些操作效率很高(读某个数组元素)，有些操作的效率很低(删除某个数组元素)。程序员的目标是为当前的问题选择最优的数据结构。

### 什么是算法？

算法是解决特定问题求解步骤的描述，在计算机中表现为指令的有限序列，并且每条指令表示一个或多个操作。（《大话数据结构》）

![](https://3953159057-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_oS8XWzoA34pjHOQZS%2F-Lbak382zWADMyPuPVai%2F-Lbak6OM4f9kyWHV16FB%2Fimage.png?alt=media\&token=b4850525-5f42-4e6a-a8ff-ebf0b8d24c88)
