算法练习 - 广度优先查找算法(BFS)
Opened this issue · 0 comments
hszy00232 commented
const graph = {};
graph["you"] = ["alice", "bob", "claire"];
graph["bob"] = ["anuj", "peggy"];
graph["alice"] = ["peggy"];
graph["claire"] = ["thom", "jonny"];
graph["anuj"] = [];
graph["peggy"] = [];
graph["thom"] = [];
graph["jonny"] = [];
/**
* 确定一个人是否是卖家
* @param {string} name
* @returns {boolean}
*/
function personIsSeller(name) {
return name.slice(-1) === 'm';
}
/**
* 查找卖芒果的人
* @param {string} name
* @returns {boolean} 查询结果
*/
function search(name) {
let search_queue = [];
search_queue = search_queue.concat(graph[name]);
const searched = [];
while (search_queue.length) {
let person = search_queue.shift();
if (searched.indexOf(person) === -1) {
if (personIsSeller(person)) {
console.log(person + ' is a mango seller!');
return true;
}
search_queue = search_queue.concat(graph[person]);
searched.push(person);
}
}
return false;
}
search('you');