📌 持续构建个人的源码库,更多信息请看这篇文章。
- call / apply 实现
 - bind 实现
 - new 实现
 - deepclone 深拷贝实现
 - throttle 节流实现
 - debounce 防抖实现
 - URL 参数解析 实现
 - Promise 实现
 - async/await 实现
 - 订阅/发布 实现
 - 柯里化 实现
 - 模板字符串 实现
 
- Webpack 的模拟实现
 - Webpack-Plugin 的实现
 -  Babel 的模拟实现
- input => tokenizer => tokens
 - tokens => parser => AST
 - AST => transformer => newAST
 - newAST => code generator => output
 
 - Babel-Plugin 的实现
 - Redux 的模拟实现
 - Router 的模拟实现
 - React 的模拟实现(在另外一个仓库,使用 TypeScript 实现)
 - Egg.js 的模拟实现(在另外一个仓库,暂无单元测试)
 
- Linked List 链表
- linked list 双链表实现
 - merge linked list 合并两个链表
 - reverse linked list 反转链表
 
 - Array 数组
- remove duplicate 数组去重
 - two sum 两个数之和
 - three sum 三个数之和
 
 - Heap 堆
- heap 堆的实现
 - get min K nums 获取一段数组里面最小的 k 个数
 
 - Stack 栈
- stack 实现
 
 - Queue 队列
- queue 实现
 
 - Set 集合
 - Hash Table 散列表
 - Tree 树
- binary tree 二叉树
 - tree traversal 二叉树的先序/中序/后序非递归遍历
 - rebuild tree 重建二叉树
 - invert tree 翻转二叉树
 - tree symmetry 是否是镜像二叉树
 
 
- Sort 排序
- bubble sort 冒泡排序
 - selection sort 选择排序
 - insert sort 插入排序
 - merge sort 归并排序
 - quick sort 快速排序
 
 - Divide and conquer 分治
- binary search 二分查找
 - binary search tree 二叉搜索树
 
 - Recursion 递归
- jump floor 跳台阶
 - find all node path in tree 找出二叉树中结点值的和为输入整数的所有路径
 
 - Traversal 遍历
 - Double Pointer 双指针
- find Kth to tail 求链表中倒数第 k 个结点
 - reOrder array 数组重排序,奇数在前半部分,偶数在后半部分
 
 - Dynamic Programming 动态规划
- min edit distance 最小编辑距离
 - min path sum 最少路径问题
 
 - Backdate Programming 回溯算法
- solve N queens N皇后问题
 
 - Greedy Programming 贪心算法
- distribution cookie 分发饼干
 
 
- Number 数字
- thousands format 千分位
 
 - String 字符串
- longest common substring 最长公共子串
 - KMP KMP 算法求子串的索引位置
 
 
Welcome to commit issue & pull request !