资讯专栏INFORMATION COLUMN

JavaScript来说数据结构

Render / 1359人阅读

摘要:什么是数据结构在计算机科学中,数据结构是计算机存储组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。示例代码栈一种高效的数据结构,数据只能在栈顶添加或删除,先进后出。

写在前面

数据结构是工程师编程通识之一,不管你是JavaScript工程师,还是Java、python工程师,对数据结构理解够深,才能写出更简洁、更优雅的程序代码。这里我用JavaScript语言来写数据结构示例,希望对你有所帮助。

什么是数据结构

在计算机科学中,数据结构(data structure)是计算机存储、组织数据的方式。

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

数据结构概念定义

数据:是用来描述一种客观事物的符号,分为数据元素、数据对象、数据项等。

结构:数据元素相互之间的关系,分为逻辑结构和存储结构两大类。

数据逻辑结构:指数据元素之间的前后件关系,分为集合、线性结构、非线性结构等。

数据存储结构:指数据的逻辑结构在计算机存储空间的存放形式,分为顺序结构、链式结构、索引结构、散列结构等。

数据结构有哪些

列表

一个存储元素的线性集合(collection),元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。

示例代码

队列

用于存储按顺序排列的数据,先进先出。

示例代码

一种高效的数据结构,数据只能在栈顶添加或删除,先进后出。

示例代码

链表

由一组节点组成的集合,每个节点都使用一个对象的引用指向它的后继。

示例代码

字典

以键-值对形式存储数据的数据结构。

示例代码

散列表

散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用。

示例代码

集合

一种包含不同元素的数据结构。集合中的成员是无序的,集合中不允许相同成员存在。

示例代码

一种非线性的数据结构,以分层的方式存储数据,被用来存储具有层级关系的数据。

示例代码

由边的集合及顶点的集合组成。

示例代码

上面对常用的9种数据结构做了一个简要的介绍。更好的理解数据结构,还是看图解、看示例源码比较好。

参考资料

https://book.douban.com/subject/25945449/

https://book.douban.com/subject/27129352/

https://www.cnblogs.com/shuoer/p/8424848.html

https://segmentfault.com/a/1190000010343508

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104965.html

相关文章

  • [译] 唯快不破:Web 应用的 13 个优化步骤

    摘要:译文地址译唯快不破应用的个优化步骤前端的逆袭知乎专栏原文地址时过境迁,应用比以往任何时候都更具交互性。使用负载均衡方案我们在之前讨论缓存的时候简要提到了内容分发网络。换句话说,元素的串形访问会削弱负载均衡器以最佳形式 欢迎关注知乎专栏 —— 前端的逆袭欢迎关注我的博客,知乎,GitHub。 译文地址:【译】唯快不破:Web 应用的 13 个优化步骤 - 前端的逆袭 - 知乎专栏原文地...

    haobowd 评论0 收藏0
  • 弄懂JavaScript的作用域和闭包

    摘要:关于本书,我会写好几篇读书笔记用以记录那些让我恍然大悟的瞬间,本文是第一篇弄懂的作用域和闭包。作用域也可以看做是一套依据名称查找变量的规则。声明实际上是根据你传递给它的对象凭空创建了一个全新的词法作用域。 《你不知道的JavaScript》真的是一本好书,阅读这本书,我有多次哦,原来是这样的感觉,以前自以为理解了(其实并非真的理解)的概念,这一次真的理解得更加透彻了。关于本书,我会写好...

    everfly 评论0 收藏0
  • JavaScript快速全栈开发》作者Azat Mardanov:现在是拥抱Node技术栈的最佳时

    摘要:长期以来,他都是和等机构的讲师,其技术课程获得一致好评。但是,如果让我预测的话,我认为未来是很光明的,而现在就是拥抱技术栈的最佳时机。所以在浏览器和服务器之间代码不需要上下文切换。如果没有上下文切换,那么生产力也会更高。 非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/article/195742 Azat Mardan...

    Rango 评论0 收藏0
  • JS学习系列 01 - 编译原理和作用域

    摘要:的抽象语法树中可能如下图所示代码生成将转换为可执行代码的过程被称为代码生成。如果是,编译器会忽略该声明,继续进行编译,否则它会要求在当前作用域的集合中声明一个新的变量,并命名为。 在学习 javascript 的过程中,我们第一步最应该了解和掌握的就是作用域,与之相关还有程序是怎么编译的,变量是怎么查找的,js 引擎是什么,引擎和作用域的关系又是什么,这些是 javascript 这门...

    jkyin 评论0 收藏0
  • 谈谈浏览器里的JavaScript

    摘要:而与最大的区别在于与浏览器沟通的窗口,不涉及网页内容。完全依赖于浏览器厂商实作本身无标准规范,而有着所制定的标准来规范。而透过选取出来的节点,我们可以通过操作属性来变更它的文字。在许多的网页前端教学或是文章书籍当中,你可能常常听到这样的说法:「HTML、CSS 与JavaScript 是网页前端三大要素」,其中: HTML 负责资料与结构 CSS 负责样式与呈现 JavaScript 负责...

    CastlePeaK 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<