【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-