缺什么补什么,别假装什么都会

很多写 JS 的同学平时做业务、调接口、写页面都很顺,一遇到算法题就发虚:栈和队列的概念能背出来,但真要用代码实现一个最小栈、或者用两个栈拼出一个队列,就会卡在边界处理和底层操作上。这门课就是来补这个缺口的。它不搞大而全的理论铺陈,而是直接拿栈和队列这两个最基础、最常考的数据结构开刀,用 JS 把它们的内部结构和经典变体题敲明白。如果你正处于转岗准备期,或者平时只写业务逻辑、想系统补齐算法基础,这部分的练习对你来说是刚需。前提是你得有基本的 JS 语法基础,知道数组怎么操作、函数怎么写,课程不会在这些基础语法上停留。

建议先看这几块,把概念和代码对应上

看这份资料时,别一上来就跳进综合题,建议先从最基础的栈结构介绍和普通队列实现看起,把入栈、出栈、入队、出队的底层代码逻辑自己在编辑器里敲一遍。基础结构理顺后,再去碰十进制转二进制这种栈的简单应用题,理解栈“后进先出”在进制转换里到底是怎么起作用的。接着重点啃 min 栈设计、反转栈、两个栈实现队列这三个经典变体。这几个模块不是孤立的,它们是在基础结构上不断叠加操作限制:min 栈考的是空间换时间的辅助结构设计,反转栈考的是递归或临时变量的状态保存,两个栈实现队列考的是数据在两个容器间倒腾时的时机控制。看视频时一定要同步暂停,先自己尝试写代码,写不出来再对照视频里的思路,别干看着跟着抄,抄完就全忘了。

看完应能独立做什么,以及资料怎么配合练习

学完这部分,你应该能脱离任何参考代码,独立手写出一个功能完整的栈和队列类,并且能准确说出它们的时间复杂度。更重要的是,面对 min 栈设计、反转栈、两个栈实现队列这类经典题目,你要能直接在白板或编辑器里写出可运行的 JS 代码,并且把每一步操作的边界条件讲清楚。资料里的代码片段和视频演示是用来帮你理清思路的,不是让你背下来的。练习时,建议把每个结构都封装成独立的类或函数文件,然后自己写一组测试用例去验证:比如压入几个元素后调用 min 方法、或者连续出队操作看数据顺序是否正确。把基础栈和队列吃透了,后续再碰树、图等更复杂的数据结构时,你会发现很多底层操作都离不开这两个基础容器的思想,这时候你的底气就不一样了。

课程目录

1-1 [简单粗暴学习数据结构与算法 JS版(三)] 数据结构介绍 (03:40)
1-2 [简单粗暴学习数据结构与算法 JS版(三)] 栈 (15:49)
1-3 [简单粗暴学习数据结构与算法 JS版(三)] 用栈做一个十进制转二进制运算 (10:15)
1-4 [简单粗暴学习数据结构与算法 JS版(三)] 队列 (18:23)
1-5 [简单粗暴学习数据结构与算法 JS版(三)] min栈设计 (14:00)
1-6 [简单粗暴学习数据结构与算法 JS版(三)] 反转一个栈 (13:31)
1-7 [简单粗暴学习数据结构与算法 JS版(三)] 两个栈实现一个队列 (12:07)