先说清楚:这门课解决什么工作场景

这套 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