![23e2c6127da6a92387fd65eff4e3d5c5.png](https://img-blog.csdnimg.cn/img_convert/23e2c6127da6a92387fd65eff4e3d5c5.png)
经常有同学问树结构的相关操作,也写了很多次,在这里总结一下JS树形结构一些操作的实现思路,并给出了简洁易懂的代码实现。
本文内容结构大概如下:
![0b67f2b2685e634764c47d1c92424c85.png](https://img-blog.csdnimg.cn/img_convert/0b67f2b2685e634764c47d1c92424c85.png)
一、遍历树结构
1. 树结构介绍
JS中树结构一般是类似于这样的结构:
let
为了更通用,可以用存储了树根节点的列表表示一个树形结构,每个节点的children属性(如果有)是一颗子树,如果没有children属性或者children长度为0,则表示该节点为叶子节点。
2. 树结构遍历方法介绍
树结构的常用场景之一就是遍历,而遍历又分为广度优先遍历、深度优先遍历。其中深度优先遍历是可递归的,而广度优先遍历是非递归的,通常用循环来实现。深度优先遍历又分为先序遍历、后序遍历,二叉树还有中序遍历,实现方法可以是递归,也可以是循环。