美文网首页
深度搜索树

深度搜索树

作者: liuniansilence | 来源:发表于2022-02-23 10:33 被阅读0次

问题:对一个数组,匹配其中某个子节点的值,返回其对应的路径。
数组实例:

const options = [{
    'name': '河北省',
    'options': [{
        'name': '廊坊市',
        'options': [{
            'name': '廊坊XXX4s专营店',
            'options': []
        }, {
            'name': '燕郊FFFF4s直营店',
            'options': []
        }]
    }]
}, {
    'name': '吉林省',
    'options': [{
        'name': '长春市',
        'options': [{
            'name': '长春QQQ4s直营店',
            'options': []
        }]
    }]
}];

例如:给定「燕郊FFFF4s直营店」,返回 ['河北省', '廊坊市', '燕郊FFFF4s直营店']

JavaScript实现代码:

const search = (options, target) => {
    const result = [];
    try {
        const getNodePath = tree => {
            for(let i = 0; i < tree.length; i++) {
                const item = tree[i];
                result.push(item.name);
                if (item.name === target) {
                    throw new Error('get it!');
                }
                if (item.options && item.options.length) {
                    for(let j = 0; j < item.options.length; j++) {
                        getNodePath(item.options)
                    }
                }
                // 没有叶子节点,自己也不是,pop
                result.pop();
            }
        }
        getNodePath(options);
        return result;
    }
    catch(e) {
        return result;
    }
}

运行结果:


image.png

相关文章

  • 二叉树遍历_深度_广度

    深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 深度优先...

  • 深度搜索树

    问题:对一个数组,匹配其中某个子节点的值,返回其对应的路径。数组实例: 例如:给定「燕郊FFFF4s直营店」,返回...

  • DFS(深搜)算法

    深度优先搜索算法(Depth-First-Search):是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的...

  • 二叉树深度优先遍历和广度优先遍历

    对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的...

  • 二叉树 深度优先与广度优先

    对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的...

  • 面试算法--二叉树DFS/BFS实现(C语言)

    深度优先搜索算法(Depth First Search) DFS是搜索算法的一种。它沿着树的深度遍历树的节点,尽可...

  • 2018-05-18 递归求树的深度

    题意:给你一个树,返回树的最大深度。解题思路:使用深度优先搜索,从树的根开始,递归搜索,递归结束条件是,如果该节点...

  • 图的相关算法

    深度优先搜索非递归形式 DFS 深度优先搜索非递归形式 广度优先搜索 BFS 判断无向图是否是树 判断有向图中两...

  • js寻路模式

    关键词:寻路 ** 1.深度优先搜索(Depth-First-Search):**沿着树的深度遍历树的节点,尽可...

  • 14-深度优先搜索(Depth First Search)

    深度优先搜索(Depth First Search) 与广度优先搜索一样,在二叉树搜索部分,也有用到过类似于深度优...

网友评论

      本文标题:深度搜索树

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