树的深度优先遍历和广度优先遍历
Posted 沿着路走到底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树的深度优先遍历和广度优先遍历相关的知识,希望对你有一定的参考价值。
1
const tree =
val: 'a',
children: [
val: 'b',
children: [
val: 'd',
children: [],
,
val: 'e',
children: [],
],
,
val: 'c',
children: [
val: 'f',
children: [],
,
val: 'g',
children: [],
],
],
;
/*
深度优先遍历
访问根节点
对根节点的 children 挨个进行深度优先遍历
*/
function dfs (root)
console.log(root.val)
root.children.forEach(child => dfs(child))
/*
广度优先遍历
新建一个队列,把根节点入队
把队头出队并访问
把队头的 children 挨个入队
重复第二、三步,直到队列为空
*/
function bfs (root)
const q = [root]
while(q.length)
const n = q.shift()
console.log(n.val)
n.children.forEach(child =>
q.push(child)
)
1
以上是关于树的深度优先遍历和广度优先遍历的主要内容,如果未能解决你的问题,请参考以下文章