先说清楚:这门课解决什么工作场景
这套 TypeScript 数据结构与算法资料,对应的是前端和 Node.js 开发者最吃力的两件事:一是面对复杂业务逻辑时写不出结构清晰的代码,二是技术面试时一碰到手写链表反转、队列调度就卡壳。它不是那种泛泛讲语法的基础课,而是直接拿数组、栈、队列、链表这些核心结构开刀,用 TypeScript 把底层逻辑一行行敲出来。如果你平时写业务已经没问题,但一聊到时间复杂度的大 O 表示法、空间换时间的取舍就心里没底,这门课正好补这块短板。
适合什么基础,建议先看哪几块
它要求你已经能熟练用 TypeScript 写基本类型和泛型,不需要你是算法竞赛选手,但连 interface 都没写过的人看会比较吃力。建议按这个顺序切入:先把大 O 表示法和时间复杂度那节看透,这是后面所有分析的底子;然后直接进线性结构和数组,这部分跟你日常写的代码最近,上手阻力最小;栈和队列跟着手写实现走一遍,别只看视频,一定要自己敲一遍封装。链表那几节是重点也是分水岭,反向链表和约瑟夫问题这类经典题,先自己想思路再看讲解,效果比被动听强很多。
学完能独立做什么,资料怎么配合练习
踏实走完这套资料,你能在实际工作里做几件具体的事:给一个性能瓶颈函数做复杂度分析并判断该不该重构、用栈或队列重新设计一个调度逻辑、在白板上手写链表操作并讲清楚边界条件。练习方法上,每看完一个结构的实现视频,关掉资料自己从空文件开始写,卡住了再回去对照,写完之后去刷题平台找两三道同类型题验证。队列那节后面跟着常见面试题分析,这部分别快进,先暂停自己想解法,再听拆解,这是把知识从"看懂"变成"能输出"的关键一步。整套资料的核心价值不在让你背下多少道题,而是帮你建立起"拿到问题先想数据结构选型"的思维习惯。
41 邂逅数据结构与算法和应用场景-大O表达式-时间复杂度 · 42 线性数据结构-数组数据结构-栈数据结构的实现 · 43 队列结构的实现-常见数据架构面试题
课程目录
* 41 邂逅数据结构与算法和应用场景-大O表达式-时间复杂度/
* 01 邂逅数据结构与算法和应用场景-大O表达式.mp4
* 42 线性数据结构-数组数据结构-栈数据结构的实现/
* 01 线性数据结构-数组数据结构-栈数据结构.mp4
* 43 队列结构的实现-常见数据架构面试题分析/
* 01 队列结构的实现-常见数据架构面试题.mp4
* 44 邂逅链表结构-手动实现链表结构-时间复杂度计算/
* 01 邂逅链表结构-手动实现链表结构.mp4
* 45 链表数据结构空间复杂度-反向链表实现/
* 01 链表数据结构空间复杂度-反向链表实现.mp4
* 46 链表相关的面试题分析-如约瑟夫问题等等/
* 01 链表相关的面试题分析-如约瑟夫问题等等.mp4
* 47 认识哈希表-哈希表的实现-哈希函数的实现/
* 01 认识哈希表-哈希表的实现-哈希函数的实现.mp4
* 48 哈希表的细节处理-邂逅树结构-二叉树结构/
* 01 哈希表的细节处理-邂逅树结构-二叉树结构.mp4
* 49 搜索二叉树-树的各种遍历-先序遍历-中序遍历等/
* 01 搜索二叉树-树的各种遍历-先序遍.mp4
* 50 认识图数据结构-图数据结构实现-树数据结构的遍历/
* 01 认识图数据结构-图数据结构实现.mp4
* 课件资料/
* 课件/
* 01_邂逅数据结构与算法.pdf
* 02_线性结构-数组.pdf
* 03_栈结构(Stack).pdf
* 04_队列结构(Queue).pdf
* 05_链表结构(LinkedList).pdf
* 06_哈希表(HashTable).pdf
* 07_树结构(Tree).pdf
* 08_图结构(Graph).pdf
* 资料/
* Day01/
* PPT/
* 01_邂逅数据结构与算法.pdf
* 02_线性结构-数组.pdf
* 03_栈结构(Stack).pdf
* 04_队列结构(Queue).pdf
* 上课画图/
* 到底什么是线性结构.png
* 十进制转二进制的计算过程.png
* 有效括号的解题思路.png
* 课堂笔记/
* 内容回顾.md
* 预习代码/
* 01_实现Stack.ts
* 02_面试题一-十进制转二进制.ts
* 03_面试题二-有效的括号.ts
* 04_实现Queue.ts
* 05_面试题一-击鼓传花.ts
* 06_面试题二-约瑟夫环.ts
* stack.ts
* Day02/
* PPT/
* 04_队列结构(Queue).pdf
* 05_链表结构(LinkedList).pdf
* 上课画图/
* 击鼓传花的游戏思路.png
* 课堂笔记/
* 内容回顾.md
* 预习代码/
* 01_链表LinkedList实现(插入).ts
* 02_链表LinkedList实现(删除).ts
* 03_链表LinkedList实现(重构).ts
* 04_面试题一-删除节点.ts
* 05_面试题二-反转链表.ts
* ListNode.ts
* Day03/
* PPT/
* 06_哈希表(HashTable).pdf
* 上课画图/
* 字母转数字的方案(哈希化的方案).png
* 有序数组中查找元素的位置的两种算法.png
* 课堂笔记/
* 内容回顾.md
* 预习代码/
* 01_哈希函数的实现.ts
* 02_哈希表实现.ts
* 03_判断质数.ts
* Day04/
* PPT/
* 06_哈希表(HashTable).pdf
* 07_树结构(Tree).pdf
* 上课画图/
* 哈希函数的操作.png
* 链地址法查找的概率推导.png
* 课堂笔记/
* 内容回顾.md
* 预习代码/
* 01_BinarySerachTree(插入) copy.ts
* 01_BinarySerachTree(插入).ts
* 02_BinarySerachTree(遍历).ts
* 03_BinarySerachTree(最值).ts
* 04_BinarySerachTree(搜索).ts
* 05_BinarySerachTree(删除).ts
* Day05/
* PPT/
* 07_树结构(Tree).pdf
* 08_图结构(Graph).pdf
* 上课画图/
* 中序遍历的访问.png
* 先序遍历的访问过程.png
* 删除操作_两个子节点的前驱和后继.png
* 删除操作_前期分析.png
* 后序遍历的访问.png
* 层序遍历的伪代码逻辑.png
* 层序遍历的访问.png
* 搜索操作的非递归.png
* 课堂笔记/
* 内容回顾.md
* 预习代码/
* 01_树结构(Tree)/
* 01_二叉搜索树BSTree.ts
* 02_二叉搜索树BSTree(插入).ts
* 03_二叉搜索树BSTree(遍历).ts
* 04_二叉搜索树BSTree(搜索).ts
* 05_二叉搜索树BSTree(重构).ts
* 02_图结构(Graph)/
* 01_图的封装.ts
* code/
* 01_栈结构Stack/
* 00_测试stack的代码.ts
* 01_实现栈结构Stack.ts
* 02_实现栈结构Stack(重构).ts
* 03_实现栈结构Stack(链表).ts
* 04_面试题一-十进制转二进制.ts
* 05_面试题二-有效的括号.ts
* IStack.ts
* 02_队列结构Queue/
* 00_测试队列结构.ts
* 01_实现队列结构Queue.ts
* 02_面试题一-击鼓传花.ts
* 03_面试题二-约瑟夫环.ts
* 04_面试题二-约瑟夫环(课下).ts
* IQueue.ts
* 03_链表结构LinkedList/
* 01_实现LinkedList(封装).ts
* 02_实现LinkedList(添加).ts
* 03_实现LinkedList(插入).ts
* 04_实现LinkedList(删除).ts
* 05_实现LinkedList(获取).ts
* 06_实现LinkedList(重构).ts
* 07_实现LinkedList(更新).ts
* 08_实现LinkedList(索引).ts
* 09_实现LinkedList(其他).ts
* 10_面试题一-设计链表(完成).ts
* 11_面试题二-删除Node节点.ts
* 12_面试题三-反转链表(栈结构).ts
* 13_面试题三-反转链表(非递归).ts
* 14_面试题三-反转链表(递归).ts
* 15_实现LinkedList(接口设计).ts
* ILinkedList.ts
* 面试题_ListNode.ts
* 04_算法的复杂度分析/
* 01_查找算法-顺序查找.ts
* 02_查找算法-二分查找.ts
* 03_测试查找算法时间.ts
* 04_格式化数字.ts
* 05_哈希表HashTable/
* 01_哈希函数hashFunc.ts
* 02_哈希表HashTable(封装).ts
* 03_哈希表HashTable(插入-修改).ts
* 04_哈希表HashTable(获取值).ts
* 05_哈希表HashTable(删除操作).ts
* 06_哈希表HashTable(扩容缩容).ts
* 07_判断数字是否是质数.ts
* 08_判断数字是否是质数(优化).ts
* 09_哈希表HashTable(质数容量).ts
* 06_二叉搜索树BSTree/
* 01_二叉搜索树BSTree(封装).ts
* 02_二叉搜索树BSTree(插入).ts
* 03_二叉搜索树BSTree(遍历).ts
* 04_二叉搜索树BSTree(最值).ts
* 05_二叉搜索树BSTree(搜索).ts
* 06_二叉搜索树BSTree(删除-搜索节点).ts
* 07_二叉搜索树BSTree(删除-搜索重构).ts
* 08_二叉搜索树BSTree(删除-叶子节点).ts
* 09_二叉搜索树BSTree(删除-一个子节点).ts
* 10_二叉搜索树BSTree(删除-两个子节点).ts
* 11_二叉搜索树BSTree(删除-代码重构).ts
* 07_图结构Graph/
* 01_图结构Graph(封装).ts
* 02_图结构Graph(顶点和边).ts
* 03_图结构Graph(广度优先).ts
* 04_图结构Graph(深度优先).ts
* node_modules/
* .package-lock.json
* hy-algokit/
* babel.config.js
* dist/
* index.d.ts
* index.js
* lib/
* index.ts
* isPrime.ts
* print.ts
* testSearch.ts
* package.json
* tsconfig.json
* webpack.config.js
* package-lock.json
* package.json
* types/
* IList.ts
* Node.ts






