这是我参与「 第五届青训营 」伴学笔记创作活动的第 18 天。
前言
今天是 2023 年 2 月 1 日星期三,癸卯年正月十一。
依然祝大家兔年快乐🐰
昨天晚上的直播中,我参与了杨兴元老师的分享,感到受益匪浅。
数据结构与算法
作为一名IT从业者,在我们求职或者刷各种面经的时候,经常会看到数据结构和算法相关的字眼,比如leetcode刷题xxx道、面试手撕算法题等等。不管是前端、后端、客户端还是算法岗,好像数据结构和算法已经成为了一个公认的评价程序员技术水平的标准。实际上数据结构和算法也是大学计算机专业的一门专业课,如今有非常多的资料来介绍这些专业知识,比如链表、二叉树、图论、动态规划等等,甚至有专门的刷题教程书籍,如《剑指Offer》等。
数据结构与算法在前端领域中的应用
而兴元老师这次分享的关注点稍微有些不同,老师作为一个前端人的视角,来重新审视数据结构和算法这个学科/领域。并没有系统讲解这门学科的知识体系,而是从实战的角度出发,通过五个的案例来分享了老师在实际的工程中所接触到的数据结构以及算法,让我们明白数据结构和算法并不是只存在于象牙塔里面的题目和模型,它在我们的技术栈和专业领域中无处不在,和我们的日常开发息息相关,是需要我们穷尽整个职业生涯去追求和探索的东西。
递归
遍历所有文件是一个非常基础的递归程序。而递归是许多算法的重要实现基础,也是编程新手进阶的门槛。老师运用递归完成了 DFS (深度优先遍历)的算法,在实际的工程实践中,也会经常遇到类似的场景。
树
树可以用来实现词法分析与语法分析,生成一棵抽象语法树 AST。
图
在 Bundler 模块打包器中,运用了图的相关知识,用来检查模块之间的循环依赖。