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

【JavaScript】数据结构之树

什么是树形结构?

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

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

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

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

广度优先搜索(遍历)

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

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

树 - 多叉树

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

树 - 二叉树

在这里插入图片描述

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

leetcode 习题

二叉树习题

http://www.lryc.cn/news/441072.html

相关文章:

  • 【AI大模型】LLM主流开源大模型介绍
  • Uniapp的alertDialog返回值+async/await处理确定/取消问题
  • Spring Boot中的响应与分层解耦架构
  • 基于python+django+vue的图书管理系统
  • Oracle数据库安装与SQL*Plus使用
  • C#通过MXComponent与三菱PLC通信
  • 深度学习实战91-利用时空特征融合模型的城市网络流量预测分析与应用
  • GlusterFS 分布式文件系统
  • 论文学习笔记6:Relation-Aware Heterogeneous Graph Neural Network for Fraud Detection
  • 无人机光电吊舱的技术!!
  • C++——判断year是不是闰年。
  • 31. 三维向量Vector3与模型位置
  • C# Action和delegate区别及示例代码
  • 深度优先搜索: 探索图结构的括号化旅程
  • LINUX网络编程:传输层
  • PyTorch框架
  • 分布式系统实战经验
  • 软考(中级-软件设计师)(0919)
  • WhaleStudio 与飞腾 S5000C 处理器完成产品兼容测试!
  • 【Arduino】Arduino使用USB-TTL无法下载程序问题
  • 使用源代码编译R包的过程
  • 基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现
  • 【论文阅读】Face2Diffusion for Fast and Editable Face Personalization
  • 金钥匙系列:Kubernetes (K8s) 服务集群技术栈学习路线
  • centos远程桌面连接windows
  • Android 系统下:普通应用无缝安装,Launcher 应用安装遭遇罕见障碍解析
  • VMware vCenter Server 8.0U3b 发布下载,新增功能概览
  • Unity 百度AI实现无绿幕拍照抠像功能(详解版)
  • MySQL_表的基本操作
  • 【网站架构部署与优化】源码编译安装LAMP