美文网首页
图的广度优先搜索

图的广度优先搜索

作者: bestCindy | 来源:发表于2020-07-19 00:44 被阅读0次
function Node(value) {
    this.value = value;
    this.neighbor = [];
}

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");

a.neighbor.push(b);
a.neighbor.push(c);
b.neighbor.push(a);
b.neighbor.push(c);
b.neighbor.push(d);
c.neighbor.push(a);
c.neighbor.push(b);
c.neighbor.push(d);
d.neighbor.push(b);
d.neighbor.push(c);
d.neighbor.push(e);
e.neighbor.push(d);

function bfs(nodes, target, path) {
    if (nodes == null || nodes.length == 0) return false;
    let nextNodes = [];
    for (let i = 0; i < nodes.length; i++) {
        if (path.indexOf(nodes[i]) > -1) continue;
        path.push(nodes[i]);

        if (nodes[i].value == target) return true;
        else nextNodes = nextNodes.concat(nodes[i].neighbor);//一层一层的找
    };
    return bfs(nextNodes, target, path);
}
console.log(bfs([c], "n", []));

相关文章

网友评论

      本文标题:图的广度优先搜索

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