首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
从零开始学习 JavaScript 数据结构与算法
XPoet
创建于2021-05-23
订阅专栏
专为前端工程师打造的从零开始学习 JavaScript 数据结构与算法
等 8 人订阅
共11篇文章
创建于2021-05-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
从 0 开始学习 JavaScript 数据结构与算法(十一)树
从 0 到 1 学习 JavaScript 数据结构与算法(十一)树 - 二叉树 & 二叉搜索树& 平衡树
从 0 开始学习 JavaScript 数据结构与算法(十)哈希表
哈希表是一种非常重要的数据结构,几乎所有的编程语言都直接或者间接应用这种数据结构。 哈希表可以提供非常快速的 插入-删除-查找 操作。 无论多少数据,插入和删除值都只需接近常量的时间,即 O(1) 的时间复杂度。实际上,只需要几个机器指令即可完成。 哈希表的速度比树还要快,基本…
从 0 开始学习 JavaScript 数据结构与算法(九)字典
字典存储的是键值对,主要特点是一一对应。 数组形式:[19,"Tom", 1.65],可通过下标值取出信息。 字典形式:{"age": 19, "name": "Tom", "height": 165},可以通过 key 取出 value。 此外,在字典中 key 是不能重复且…
从 0 开始学习 JavaScript 数据结构与算法(八)集合
几乎每种编程语言中,都有集合结构。集合比较常见的实现方式是哈希表,这里使用 JavaScript 的 Object 进行封装。 集合通常是由一组无序的、不能重复的元素构成。 数学中常指的集合中的元素是可以重复的,但是计算机中集合的元素不能重复。 集合是特殊的数组。 特殊之处在于…
从 0 开始学习 JavaScript 数据结构与算法(七)双向链表
只能从头遍历到尾或者从尾遍历到头(一般从头到尾)。 链表相连的过程是单向的,实现原理是上一个节点中有指向下一个节点的引用。 单向链表有一个比较明显的缺点:可以轻松到达下一个节点,但回到前一个节点很难,在实际开发中, 经常会遇到需要回到上一个节点的情况。 既可以从头遍历到尾,也可…
从 0 开始学习 JavaScript 数据结构与算法(六)单向链表
链表和数组一样,可以用于存储一系列的元素,但是链表和数组的实现机制完全不同。 存储多个元素,数组(或列表)可能是最常用的数据结构。 几乎每一种编程语言都有默认实现数组结构,提供了一个便利的 [] 语法来访问数组元素。 数组的创建需要申请一段连续的内存空间(一整块内存),并且大小…
从 0 开始学习 JavaScript 数据结构与算法(五)优先队列
优先排队的人,优先处理。 (买票、结账、WC)。 排队中,有紧急情况(特殊情况)的人可优先处理。 每个元素不再只是一个数据,还包含优先级。 在添加元素过程中,根据优先级放入到正确位置。
从 0 开始学习 JavaScript 数据结构与算法(四)队列
队列(Queue)是一种运算受限的线性表,特点:先进先出。(FIFO:First In First Out) 只允许在表的前端(front)进行删除操作。 只允许在表的后端(rear)进行插入操作。 排队,比如在电影院,商场,甚至是厕所排队。 优先排队的人,优先处理。 (买票、…
从 0 开始学习 JavaScript 数据结构与算法(三)栈
数组是一个线性结构,并且可以在数组的任意位置插入和删除元素。 但是有时候,我们为了实现某些功能,必须对这种任意性加以限制。 栈和队列就是比较常见的受限的线性结构。 LIFO(last in first out)表示就是后进入的元素,第一个弹出栈空间。类似于自动餐托盘,最后放上的…
从 0 开始学习 JavaScript 数据结构与算法(二)数组
几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。 数组通常情况下用于存储一系列同一种数据类型的值。 但在 JavaScript 里,数组中可以保存不同类型的值。但我们还是要遵守最佳实践,别这么做(大多数语言都没这个能力)。
从 0 开始学习 JavaScript 数据结构与算法(一)前言
“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。” --- 《数据结构、算法与应用》 “数据结构是 ADT(抽象数据类型 Abstract Data Type)的物理实现。” --- 《数据结构与算法分析》 …