JavaScript的数据结构:什么是数据结构?

最终产品图片
您将要创造的

什么是数据结构?

我一直认为“数据结构”一词令人困惑。 这到底是什么? 它是否具有结构性的数据,这是一个同样模棱两可的术语?

当我过去经常与同龄人分享困惑时,他们会很快地嘲笑“有结构的数据”。 他们脸上的满足感使我开始怀疑自己。 我想这就是我所需要知道的...

最终,我学会了通过简单地将术语“数据结构”改为“数据结构”来解决数据结构的概念。 在这种情况下,重点从数据(事物)转移到结构(组织)。 这是一个微妙但非常重要的细节。 换句话说,我们不是专注于事物,而是专注于事物的组织过程。

假设我们正在讨论的东西是书。 什么更有意义:具有书籍结构或组织的书籍? 我认为,后者更容易理解。 重点正确地放在组织上,而不是书籍上。

不同类型的数据结构

类似于数据的书籍可以多种方式组织。 假设我们有20本书。 我们如何组织它们?

如果我们想在需要参考书时快速找到书,则可以将所有书按字母顺序插入书架中。 每当我们需要一本书时,我们都可以利用我们的知识(按字母顺序存储书籍)来找到它。

如果我们想按特定的顺序阅读所有书籍,也许是从插入到收藏集中的第一本书到插入的最后一本书,那么我们希望将书籍按该顺序排列; 此外,我们希望限制阅读顺序。

如果我们缺乏将所有书籍保存在同一房间的存储空间,也许我们希望以一种可以快速找到它们的方式来组织书籍。 如何将我们的20本书放到全屋,然后创建一个包含两列的列表:第一列列出一本书的标题;第二列列出一本书的标题。 第二列列出了一本书的位置。

现在,应该很清楚,有很多方法可以组织书籍。 此外,有许多不同类型的数据结构。 就像我们的书籍示例一样,我们在Web开发中使用的数据结构取决于我们的需求。

既然我们了解到有很多类型的数据结构可以满足不同类型的需求,那么我们需要了解我们可以利用和创建这些数据结构而无需深奥的编码知识。 我们所有人,即使没有胡须的人,也可以创建数据结构。 我们需要的是对日常JavaScript的理解-基本类型(例如布尔值)和引用类型(例如对象)。

如果这很难想象,那就不用担心。 我曾经认为Set是数据结构的一种,就像Set! 哦,天真,卓。 集合不是一回事。 集合是分配给特定数据组织方式的名称。 同样重要的是,使用对象创建集合。

目标

这个有关使用JavaScript的数据结构的系列文章将揭示数据结构并不是不透明和神秘的。 相反,它们被用来使我们的生活更轻松。 在本系列的每篇文章中,我都会尝试引入一个或两个非常相似的数据结构来加强这一点。

大纲

由于本系列中有太多数据结构无法充分涵盖,因此我们将仅探讨少数几个但最常见的数据结构:

  • 堆叠和排队
  • 单链表和双链表
  • 树(深度优先搜索和宽度优先搜索)

结论

当我们完成本系列文章时,我希望您不仅会学习如何实现这些通用数据结构,而且还将看到它们在我们周围都得到了使用。 当您意识到这些数据结构在组织所有数据中具有非常特定且有用的目的时,您将对它们有所赞赏。 您还将开始对数据以及如何组织数据进行不同的思考。

翻译自: https://code.tutsplus.com/tutorials/data-structures-with-javascript-whats-a-data-structure--cms-23347