当前位置: 首页 > news >正文

【JavaScript】数据结构之树

什么是树形结构?

  • 一种分层数据的抽象模型,用来分层级关系的。
  • 虚拟dom它所组织的那个数据原理就是树形结构

深度优先搜索(遍历)- 递归

  • 从根出发,尽可能深的搜索树的节点
  • 技巧
    • 访问根节点
    • 对根节点的children挨个进行深度优化搜索

在这里插入图片描述在这里插入图片描述在这里插入图片描述

广度优先搜索(遍历)

  • 从根出发,优先访问离根节点最近的节点
  • 技巧
    • 新建一个队列,把根节点入队
    • 把队头出队
    • 把队头的children挨个入队
    • 重复上面二三步骤,直到队列为空为止

在这里插入图片描述在这里插入图片描述

树 - 多叉树

  • dom结构是典型的多叉树
    在这里插入图片描述

树 - 二叉树

在这里插入图片描述

  • 前序遍历 & 先序遍历
    • 规则:根 左 右
    • 先从根出发 > 拿左子树的左 > 拿左子树的右,等左边都结束 > 再拿右子树的左 > 拿右子树的右
    • 可以通过递归算法实现,也可以通过迭代算法(栈)实现。
  • 中序遍历
    • 规则:左 根 右

http://www.mrgr.cn/news/27385.html

相关文章:

  • [atcoder abc 371d]1D Country
  • bat批量修改文件名
  • MES系统:智能工厂与数字化改造的关键引擎
  • 【devops】devops-git之github使用
  • Spring Boot与gRPC的完美融合:构建高效用户服务与订单服务通信
  • matlab fid = fopen(file_nav,‘rt‘);语句解释
  • 在Windows 10上安装Python 3并设置本地编程环境的方法
  • 【RabbitMQ 项目】服务端数据管理模块之交换机管理
  • Docker技术深度解析与实践应用
  • 如何设置word页码从指定页开始
  • 德之匠信息化阶段模型
  • CCS6 软件及仿真器驱动安装
  • python Open3D 验证安装崩溃
  • Linux文件系统(上)
  • 关系数据库,集合运算符,关系运算符
  • Luban策划开源工具
  • Python Web 应用的部署与运维
  • 20Kg载重30分钟续航多旋翼无人机技术详解
  • JAVA学习笔记01-变量的初始化
  • 第十一周:机器学习笔记