【译】JavaScript数据结构(1):什么是数据结构

翻译:疯狂的技术宅
英文https://code.tutsplus.com/tut...
说明:本文翻译自系列文章《Data Structures With JavaScript》,总共为四篇,原做者是在美国硅谷工做的工程师 Cho S. Kim。javascript

初次翻译,若是存在问题欢迎指出和探讨。前端

说明:本专栏文章首发于公众号:jingchengyideng 。java

一直以来,我都认为“数据结构”这个术语是使人困惑的。它究竟是什么,是“做用于数据的结构”吗?这一样是一个模棱两可的术语。程序员

当我和同伴们分享本身的困惑时,他们很快就会说:“有结构的数据”。满意的表情出如今他们脸上,这让我怀疑本身甚至怀疑人生。我想这就是本身应该知道的。web

最后我仍是搞清楚了数据结构的概念,那就简单的把术语“数据结构”称为“数据的结构”。这样,咱们就把焦点从“数据”(一件事)转移到了“结构”(组织)。这是一个微妙但很是重要的细节。换句话说,咱们再也不关注事物自己,而是关注如何组织事物的过程。数据结构

让咱们想象一下,假设咱们讨论的东西都是书籍。那么怎样作才是合理的呢?是书籍的结构,仍是书籍的组织方式呢?在我看来,后者更容易理解。重点在于怎样组织而不是书籍自己。ide

不一样类型的数据结构

书籍,就像数据同样,能够用多种方式组织起来。假如咱们有20本书,那么应该怎样组织它们呢?编码

若是咱们想要在书架上很快的找到一本参考书,不妨这样作:把全部的书都按照字母顺序排列在书架上,当你须要某一本书时,就能够很快的找到它,由于咱们知道书籍是按照字母表的顺序摆放的。spa

若是咱们想按照一个特定的顺序阅读全部的书,好比从第一本读到最后一本,那么咱们就应该按照这种顺序把书放置在书架上,而且还须要制定一个规则来约束这种阅读顺序。翻译

若是咱们没有足够的空间把全部的书全都放在一块儿,就须要一种可以快速找到它们的方式进行组织。好比:家里的不一样位置散落着20本书,咱们就须要一个有两列的表格,其中第一列列出书的标题,第二列列出其对应的位置。

到这里咱们应该已经清楚了,组织书籍的方法有不少,换句话说有不少种不一样的数据结构。用于web开发中的数据结构,就像前面书籍的例子同样,是由咱们的需求决定的。

如今咱们知道了,不一样的需求还须要依赖不一样的数据结构来实现。接下来咱们还应该知道,当使用和建立这些数据结构时,并不须要什么高深的编码知识,全部人哪怕是刚入门的小菜鸟均可以建立它。对于前端程序员来说,只须要了解经常使用的JavaScript基本类型(例如:Boolean)和引用类型(例如:Object)。

若是即便我这样解释对你来讲也比较难,别担忧,一般我会想象有一个集合,这是一种数据结构,就像一个集合同样,啊哈,多么狗血的解释。首先集合不是什么东西,集合是组织数据的一种方式的名字;其次咱们要知道,一个集合是用对象建立的。

目标

《JavaScript数据结构》系列技术文章,会告诉你数据结构并非晦涩难懂的,更不是神秘的。相反,它们会使咱们的生活更简单。我将在这个系列的文章中,经过介绍一到两种相似的数据结构,来证实这点。

大纲

因为有太多的数据结构须要被深刻讨论,限于篇幅,咱们将只探讨几种最多见也最重要的数据结构:

  • 栈和队列

  • 单链表和双链表链表

  • 树(深度优先搜索和广度优先搜索)

总结

当咱们完成这个系列的时候,我但愿你不只学会了如何实现这些常见的数据结构,并且还可以灵活的运用到本身的项目中。

当你意识到数据结构在组织数据时所发挥的做用时,会对它更加钟爱,甚至你会开始用另一种思路,来考虑应该怎样组织你的数据。

欢迎扫描二维码关注公众号,天天推送我翻译的技术文章。

图片描述