利用深度优先遍历的思路来遍历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)先中后序的的递归实现和非递归实现