【JavaScript数据结构系列】00-开篇

码路工人 CoderMonkey

转载请注明作者与出处

## 0. 开篇【JavaScript数据结构与算法】

大的计划,写以下两部分:

  • 1【JavaScript数据结构系列】
  • 2【JavaScript算法系列】

1.【JavaScript数据结构系列】

大家都知道,学习编程,基础很重要。
数据结构,就是很其中重要的一项。

本系列是个人在学习过程中的记录总结实践分享,
也希望对想要学习这方面的你,有所助益。

大白话模式开扯。

1.1 什么是数据结构

Data Structures

数据结构就是对数据的一种存储和组织方式,
具有某些特点,施加某些限制,
满足一些场景的需求,
是具体需求场景下根据其特点抽象出来的。

比如最直接的例子,

  • 去食堂打饭
  • 去银行/营业厅办理业务
  • 去美发店理发

特点就是排队,从去的早的开始依次先处理。
这里就用到了队列(Queue)。
针对VIP客户这种情况,有优先队列。

1.2 数据结构有什么用

当然是更高效方便地解决对数据的处理需求。
存储组织/插入删除/查找定位/修改替换等

写业务代码的时候也许没有体会到基础的重要,
当你以适当的数据结构解决复杂的数据关系问题,
或恰好解决业务实现时,就会感叹其中的精妙了。

作为一名合格的码路工人,

一定要学习数据结构。

1.3 本系列的计划

常用的数据结构都会涉及到,

  • JS中封装提供的

    • Array数组
    • Set集合
    • Map字典

JS中提供的,是其封装过的,
并不是原始的数据结构,
以学习API使用为主,
不做过多介绍。

  • JS未提供,自己做封装的

    • Stack栈
    • Queue队列(包括优先队列等)
    • LinkedList链表(包括双向链表等)
    • HashTable哈希表(或称散列表)
    • Tree树(包括二叉搜索树红黑树等)
    • Graph图(包括广度优先与深度优先等)

JavaScript版的数据结构,
就要用JS语言来实现。

示例代码可能会不完整,
也会照顾读者不使用新的语法,
只求能够说明数据结构及实现,
另外用最新语法实现一遍,
做成包发布到npm,说不定就有人用到呢。

npm 包:data-struct-js
> npm install data-struct-js

npm 包地址:
  https://www.npmjs.com/package/data-struct-js

源码地址

Github
  https://github.com/codermonkie/data-struct-js
  Gitee
  https://gitee.com/coder-monkey/data-struct-js


附一张思维脑图总结

*基于数组实现的哈希表


-end-

【JavaScript数据结构系列】00-开篇的更多相关文章

  1. 【JavaScript数据结构系列】01-数组Array

    [JavaScript数据结构系列]01-数组Array 码路工人 CoderMonkey 转载请注明作者与出处 # [JavaScript数据结构系列] # 01-数组Array 数组: 是有序的元 ...

  2. 【JavaScript数据结构系列】07-循环链表CircleLinkedList

    [JavaScript数据结构系列]07-循环链表CircleLinkedList 码路工人 CoderMonkey 转载请注明作者与出处 1. 认识循环链表 首节点与尾节点相连的,就构成循环链表.其 ...

  3. 【JavaScript数据结构系列】03-队列Queue

    [JavaScript数据结构系列]03-队列Queue 码路工人 CoderMonkey 转载请注明作者与出处 1. 认识队列Queue结构 队列,跟我们的日常生活非常贴近,我们前面举例了食堂排队打 ...

  4. 【JavaScript数据结构系列】05-链表LinkedList

    [JavaScript数据结构系列]05-链表LinkedList 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识链表结构(单向链表) 链表也是线性结构, 节点相连构成链表 ...

  5. 【JavaScript数据结构系列】06-双向链表DoublyLinkedList

    [JavaScript数据结构系列]06-双向链表DoublyLinkedList 码路工人 CoderMonkey 转载请注明作者与出处 1. 认识双向链表 不同于普通链表/单向链表,双向链表最突出 ...

  6. 【JavaScript数据结构系列】04-优先队列PriorityQueue

    [JavaScript数据结构系列]04-优先队列PriorityQueue 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识优先级队列 经典的案例场景: 登机时经济舱的普通队 ...

  7. 【JavaScript数据结构系列】02-栈Stack

    [JavaScript数据结构系列]02-栈Stack 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识栈结构 栈是非常常用的一种数据结构,与数组同属线性数据结构,不同于数组的 ...

  8. 学习JavaScript数据结构与算法---前端进阶系列

    学习建议 1.视频学习---认知 建议:在中国慕课上找"数据结构"相关的视频教程.中国大学MOOC 推荐清华大学.北京大学.浙江大学的教程,可先试看,然后根据自身的情况选择视频进行 ...

  9. JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)

    1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...

随机推荐

  1. 一句话教你分清楚UML组合聚合和联系!

    组合:组合后的实体消失,则所有构成实体的部件都无意义,可以理解为不能独立存在 定义: 与聚合相比,组合描述的是这样的关联关系,部分离开整体后就没有实际意义了.所以我们说组合是一种很强的关联关系. 例子 ...

  2. Spring Data Jpa 入门学习

    本文主要讲解 springData Jpa 入门相关知识, 了解JPA规范与Jpa的实现,搭建springboot+dpringdata jpa环境实现基础增删改操作,适合新手学习,老鸟绕道~ 1. ...

  3. Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)

    一.前言 有人问,为什么要用Jenkins,在一些中小型企业?我说下我以前开发的痛点,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已 ...

  4. 软件——IDEA主题美化

    前言 IntelliJ IDEA主要用于支持 Java.Scala.Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用.移动应用和 Web 应用的开发. IntelliJ ...

  5. request中跟路径有关的api的分析

    最近重在研究struts的源码,其中涉及到了request中的几个api,看了文档后还是觉得不清楚,所以在自己原来的工程中 测试了一下各个api的具体效果.在这里跟大家分享一下. 这是我具体测试的代码 ...

  6. 装完B就跑,这几个Linux指令真的Diǎo

    本文介绍一些有趣的指令,实用或者可以装逼,不妨自己也来试试看: 文章目录 1 故事的开局 2 杰哥的表演 2.1 sl 2.2 htop 2.3 gcp 2.4 hollywood 2.5 cmatr ...

  7. Linux下ffmpeg交叉编译

    1 获取源代码 git clone -b "branch" https://git.ffmpeg.org/ffmpeg.git "branch" 可以是以下的m ...

  8. YOLOV4在linux下训练自己数据集(亲测成功)

    最近推出了yolo-v4我也准备试着跑跑实验看看效果,看看大神的最新操作 这里不做打标签工作和配置cuda工作,需要的可以分别百度搜索   VOC格式数据集制作,cuda和cudnn配置 我们直接利用 ...

  9. Ubuntu:Tkinter无法导入

    最近想写个GUI小程序,所以就使用了python内置的Tkinter包,但是导入时竟然提示没有这个包? 使用命令搜索了下: sudo apt search python3-tk ,显示已经安装了.又重 ...

  10. pod install update没有反应

    出去是镜像的问题,我用的是外网,所以应该不是镜像的问题, 换用这个: pod install --verbose --no-repo-update pod update --verbose --no- ...