JavaScript 数据结构与算法(九)字典
字典字典特点 字典存储的是键值对,主要特点是一一对应。 比如保存一个人的信息 数组形式:[19,"Tom", 1.65],可通过下标值取出信息。 字典形式:{"age": 19, "name...JavaScript 数据结构与算法(八)集合
集合几乎每种编程语言中,都有集合结构。集合比较常见的实现方式是哈希表,这里使用 JavaScript 的 Object 进行封装。 集合特点 集合通常是由一组无序的、不能重复的元素构成。 数学中常指的集合中的元素是可以重复的,但是计算机中集合的元素...JavaScript 数据结构与算法(七)双向链表
单向链表和双向链表单向链表 只能从头遍历到尾或者从尾遍历到头(一般从头到尾)。 链表相连的过程是单向的,实现原理是上一个节点中有指向下一个节点的引用。 单向链表有一个比较明显的缺点:可以轻松到达下一个节点,但回到前一个节点很难,在实际开发中,经常会遇...JavaScript 数据结构与算法(六)单向链表
认识链表链表和数组链表和数组一样,可以用于存储一系列的元素,但是链表和数组的实现机制完全不同。 数组 存储多个元素,数组(或列表)可能是最常用的数据结构。 几乎每一种编程语言都有默认实现数组结构,提供了一个便利的 [] 语法来访问数组元素。 数组...JavaScript 数据结构与算法(五)优先队列
场景生活中类似优先队列的场景: 优先排队的人,优先处理。 (买票、结账、WC)。 排队中,有紧急情况(特殊情况)的人可优先处理。 优先队列优先级队列主要考虑的问题: 每个元素不再只是一个数据,还包含优先级。 在添加元素过程中,根据优先级放入到正...JavaScript 数据结构与算法(四)队列
认识队列队列(Queue)是一种运算受限的线性表,特点:先进先出。(FIFO:First In First Out) 受限之处: 只允许在表的前端(front)进行删除操作。 只允许在表的后端(rear)进行插入操作。 生活中类似队列结构的场景:...JavaScript 数据结构与算法(三)栈
数组是一个线性结构,并且可以在数组的任意位置插入和删除元素。但是有时候,我们为了实现某些功能,必须对这种任意性加以限制。栈和队列就是比较常见受限的线性结构。 什么是栈栈(stack)是一种运算受限的线性表: LIFO(last in first o...JavaScript 数据结构与算法(二)数组
几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。数组通常情况下用于存储一系列同一种数据类型的值。但在 JavaScript 里,数组中可以保存不同类型的值。但我们还是要遵守最佳实践,别这么做(大多数语言都没这个能力)。 创建和初...JavaScript 数据结构与算法(一)前言
什么是数据结构?数据结构的定义 官方定义 无 民间定义 “数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。” — 《数据结构、算法与应用》 “数据结构是 ADT(抽象数据类型 A...实用的 JavaScript 对象内置方法
在 JavaScript 中,对象是一种特殊的数据结构,可以用来存储不同类型的元素。 作为我们开发人员使用最频繁的数据结构之一,本文介绍一些你可能不太了解但又非常实用的对象内置方法,帮助你提升开发效率,快速完成数据处理。 Object.keys(ob...