六种数据结构助你顺利通过技术面试
🐞 数组
🐞 链表
🐞 堆栈
🐞 队列
🐞 二叉树
🐞 图表
新的一年即将到来,这意味着我们很多人都在寻找下一份工作。技术面试难,这已不是什么秘密,所以我们整理了一份清单(呵呵),列出了 2020 年你应该熟悉的六种数据结构。
如果您正在进行技术面试,这些是必须知道的。
我们在本周的Ladybug Podcast上聊了聊数据结构和算法,如果你还没看过,推荐你去看看!我们这里涵盖的内容远不止这六种数据结构!
由于这些数据结构已经被写了很久了,这里有一些我们最喜欢的学习它们的资源!
祝开发者好运!
🐞 数组
数组是数据结构的基础。它们是一种类似列表的数据结构,可以让你跟踪元素。这些元素可以是引用类型,例如对象或其他数组,也可以是基元类型,例如数字或字符串。
JavaScript 中数组的长度不是固定的,这意味着您可以轻松地向数组添加值。
🐞 链表
链表是一种 JavaScript 中不内置的数据结构,但可以通过其他 JavaScript 数据结构创建。
链表表示一系列节点,其中每个节点指向列表中的下一个节点。
还有双向链表,其中每个节点也指向列表中的前一个节点。
此结构使用 LIFO(后进先出)方法,即从同一端添加和删除节点。
🐞 堆栈
堆栈不是内置的 JavaScript 数据结构,但可以使用数组构建。
书堆基于 LIFO(后进先出)的概念。书堆就像一堆书,你必须先把最上面的书拿下来,才能拿到最下面的书(除非你是个野蛮人)。
堆栈允许以恒定时间添加和删除一个项目,但不幸的是,它们不提供对堆栈中第 n 个项目的恒定时间访问。
🐞 队列
队列类似于堆栈,但采用 FIFO(先进先出)方法。你可以把队列想象成一排等待买电影票的人。排队时间最长的人(即排在第一位的人)将最先得到服务。
🐞 二叉树
二叉树是一种由一系列节点组成的数据结构,每个节点最多可以有两个子节点以及一个值。根节点是树结构中的顶层节点,没有父节点。
二叉搜索树是另一种类型的二叉树,其中所有节点值都是不同的,每个父节点都有一个值小于它的左子节点和一个值大于它的右子节点。
🐞 图表
图是由节点和边组成的数据结构。如果图是有向图,则意味着每条边都有一个关联的方向(就像单行道一样)。相反,无向图没有关联的边方向。
您可能有一张人物(紫色)和电影(绿色)的图表,其中每个人可以有几部喜欢的电影,但电影没有喜欢的人。
您还喜欢哪些其他学习数据结构和算法的资源?!
在下面留下你的答案!👇
文章来源:https://dev.to/ladybug/six-data-structs-you-should-know-in-2020-3h5a