遍历json的所有值并输入响应的路径
利用深度优先遍历的思路来遍历json数据结构
const json = {
a: {
b: {
c: 1
}
},
d: [1, 2]
}
const dfs = (n, path) => {
console.log(n, path)
Object.keys(n).forEach(k => {
dfs(n[k], path.concat(k))
})
}
dfs(json, [])
小结
1、树是一种分层的数据抽象模型,普通树可以用Object和Array来表示
二叉树可以用Object来表示
2、树的深度优先遍历和树的广度优先遍历
(1)深度优先遍历:访问根节点,对根节点的children进行深度优先遍历
(2)声明一个队列,根节点放入队列,然后根节点出队,根节点的children入队,重复出队入队的操作,直至队列为空
3、二叉树的先中后序遍历
(1)先序遍历的访问顺序是 根 —> 左 —> 右
(2)中序遍历的访问顺序是 左 —> 根 —> 右
(3)后序遍历的访问顺序是 左 —> 右 —> 根
(4)先中后序的的递归实现和非递归实现