前言:做为一个非科班出身,自学前端过程当中知道学习数据结构与算法的重要性,可是网上推荐的《算法导论》看到厚度和翻了两章就没有动力翻下去了,因而打算从基础性的书本看起,结合本身看的书的总结和网上的参考文章,从最基础的数据结构用JavaScript实现作起,扩展到对应的算法题,一步步从零基础开始准备数据结构与算法。前端
学习计划分为三个步骤:git
下面是是学习计划的第一步,《学习JavaScript数据结构与算法》实现目录:github
具体代码实现Github地址:github.com/yangyang190…算法
Stack实现数组
Stack-进制转换问题数据结构
Stack-平衡圆括号问题学习
查找数组中某个数的位置code
使用归并排序合并两个有序数组排序
电话号码的组合问题(公式运算,主要涉及排列组合)递归
Queue实现
Queue-deque实现(双端队列)
Queue-击鼓传花游戏问题(循环队列)
Queue-回文检查器问题(双端队列)
单向链表和双向链表实现
循环链表实现
链表排序问题
环形链表问题
Set实现
集合运算(并、交、差、子集,ES5和ES6以及扩展运算符实现)
惟一的摩尔斯密码词问题
两个数组的交集Ⅰ问题
Map实现
两个数组的交集Ⅱ问题
HasbTable实现
散列表处理冲突
字符串中的第一个惟一字符问题
计算一个数的阶乘
斐波那契数列
复原IP地址问题
二叉树和二叉搜索树
树的遍历(中序遍历、先序遍历和后序遍历)
搜索树中的值
自平衡树(AVL树和红黑树)
后记:针对前端零基础学习数据结构与算法,建议是翻看《学习JavaScript数据结构与算法》,一步步实现其中的代码,同时能够翻看《个人第一本算法书》和配套APP、《图解算法》、《数据结构与算法图解》,这三本书主要讲解理论和思路,能够比较快速翻看,看完《学习JavaScript数据结构与算法》,就能够看《剑指Offer》,是一个进阶训练,网上有JavaScript版本代码,我会整理到Github项目中,而后再去leetcode,有这样的学习计划,主要是想对从零基础学习数据结构与算法的同窗有个过渡学习的过程,我也会按照这个步骤在Github中更新代码,最后感谢网上无私贡献思路和代码的人。