Skip to content

数组、树与遍历:DFS、BFS 与层级结构展开

主题边界

  • 前端常见树结构包括菜单、评论树、组织架构、路由表和虚拟 DOM。
  • 遍历问题要先明确需要的是搜索、转换、扁平化还是重建。

机制与流程

  • DFS 可以用递归或显式栈实现,适合深度优先处理某一条路径。
  • BFS 使用队列按层推进,适合层级统计、最短层级路径和逐层渲染。
  • 数组转树通常依赖 id -> node 映射构建父子关系,树转数组则常结合遍历顺序输出。

关键差异

  • 递归写法简洁,但深度过大可能栈溢出;显式栈/队列更易控制中断与状态。
  • 前序、中序、后序是二叉树术语,在通用多叉树场景更应该直接说明访问时机。

边界条件

  • 输入数据可能有环、缺失父节点或乱序,工程实现不能默认数据完美。
  • 很多题目其实考的是遍历中的状态收集,而不是遍历本身。

工程落点

  • 前端树结构操作经常和 UI 状态联动,例如展开收起、懒加载子节点和权限剪枝。
  • 复杂树处理要优先保证数据结构清晰,再考虑遍历性能和渲染策略。

相关主题