美文网首页
JS二叉树遍历

JS二叉树遍历

作者: 隔壁老王z | 来源:发表于2021-10-31 17:33 被阅读0次
二叉树结构
function Node(value){
  this.value= value
}

let a = new Node('a')
let b = new Node('b')
let c = new Node('c')
let d = new Node('d')
let e = new Node('e')
let f = new Node('f')
let g = new Node('g')

a.left = b
a.right = c
b.left = d
d.right = g
c.left = e
c.right = f
// 前序遍历,遍历顺序为:'根左右'
function walk(root) {
  if(!root) return
  console.log(root.value)
  walk(root.left)
  walk(root.right)
}
walk(a)

// 中序遍历,遍历顺序为:'左根右'
function walk1(root) {
  if(!root) return
  walk1(root.left)
  console.log(root.value)
  walk1(root.right)
}
walk1(a)

// 后序遍历,遍历顺序为:'左右根'
function walk2(root) {
  if(!root) return
  walk2(root.left)
  walk2(root.right)
  console.log(root.value)
}
walk2(a)
// 层序遍历
function walk3(root) {
  if(!root) return
  let nodes = []
  nodes.push(root)
  while(nodes.length) {
    const node = nodes.shift()
    console.log(node.value)
    if (node.left) {
      nodes.push(node.left)
    }
    if (node.right) {
      nodes.push(node.right)
    }
  }
}
walk3(a) // 输出 a,b,c,d,e,f,g

相关文章

  • JS来搞定二叉DOM树的遍历

    js构建一颗二叉树: 前序遍历:首先访问根结点,然后遍历左子树,最后遍历右子树 修改为DOM二叉树: 中序遍历首先...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 二叉树遍历

    二叉树 二叉树的存储结构 前序遍历 中序遍历 后序遍历 遍历代码 反转二叉树 深入学习二叉树 二叉树-你必须要懂!...

  • leetcode-day13-平衡二叉树[剑指 Offer 55

    今日的题目,我之前文章有写过,前序中序后序都在这篇文章里 js实现二叉树的前序遍历,中序遍历,后续遍历[https...

  • 二叉树操作

    树节点 逐行顺序解析二叉树 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 删除指定数值的节点 前序遍历顺序存储的...

  • 关于函数递归和迭代的转化, 及尾递归相关知识的接触和思考

    javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作 js 二叉树 【数据结构与算法】深入浅出递...

  • 数据结构与算法之二叉树遍历(七)

    目录 前序遍历中序遍历后序遍历层序遍历遍历方式的选择条件根据遍历结果重构二叉树翻转二叉树计算二叉树的高度判断一棵树...

  • 二叉树三种遍历Swift代码实现

    二叉树的三种遍历 二叉树 前序遍历 中序遍历 后序遍历 另外 不得不说,得到二叉树的前序遍历和中序遍历的结果或者后...

  • 二叉树的遍历

    二叉树的遍历 二叉树遍历 分为前序遍历、中序遍历和后序遍历。 前序遍历 (DLR) 先访问根节点,然后前序遍历左子...

网友评论

      本文标题:JS二叉树遍历

      本文链接:https://www.haomeiwen.com/subject/gwpoaltx.html