关于前端:js中的树

8次阅读

共计 580 个字符,预计需要花费 2 分钟才能阅读完成。

原文链接:https://note.noxussj.top/?source=sifo

什么是树?

在生活中,大家对树必定不生疏,小朋友都晓得树不就是一类动物嘛,不论在任何中央都有各种各样的树。然而在计算机科学外面树是什么呢?一种分层数据的形象模型,在咱们前端工作中无处不在。在 JavaScript 中没有树这种数据结构,然而能够通过 Object 和 Array 这两个数据结构构建树。


深度与广度优先遍历

深度优先遍历

尽可能深的搜寻树的分支,次要通过递归实现。

口诀:

    function dfs(root) {console.log(root.value)
    
        root.children.forEach(dfs)
    }
广度优先遍历

先拜访离根节点最近的节点,次要通过队列实现。

口诀:
  1. 新建一个队列,把根节点入队
  2. 把队头出队并拜访
  3. 把队头的 children 元素别离入队
  4. 反复 2 和 3 步骤,直到队列为空
    function bfs(root) {const q = [root]
    
    while (q.length) {const n = q.shift()
    
    console.log(n)
    
    n.children.forEach((child) => {q.push(child)
    })
    }
    }

罕用操作

  • 深度优先遍历
  • 广度优先遍历

利用场景

  1. DOM 树
  2. 级联抉择
  3. 树形控件
  4. 组织架构图

原文链接:https://note.noxussj.top/?source=sifo

正文完
 0