本文主要是介绍JavaScript 实现链表的深度优先和广度优先搜索,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JavaScript 实现链表的深度优先和广度优先搜索
深度优先
class List {
constructor(value) {
this.root = null;
this.child = [];
this.value = value;
}
// 设置左节点
setChild = (nodeList) => {
this.child.push(...nodeList);
}
// 设置父节点
setRoot = (node) => {
this.root = node;
}
// 获取第i个子节点
getChild = (i) => {
return this.child[i];
}
// 获取父节点
getRoot = () => {
return this.root;
}
// 设置值
setValue = (value) => {
this.value = value;
}
// 深度优先算法 DFS
DFS = () => {
let result = [];
const search = (kid) => {
result.push(kid.value);
kid.child.length > 0 && kid.child.forEach(item => {
search(item);
})
}
search(this);
return result.join(',');
}
}
let node1 = new List(0);
let node2 = new List(1);
let node3 = new List(2);
let node4 = new List(3);
let node5 = new List(4);
let node6 = new List(5);
node1.setChild([node2, node5]);
node2.setChild([node3, node4]);
node5.setChild([node6]);
console.log(node1.DFS());
广度优先
之后补充
这篇关于JavaScript 实现链表的深度优先和广度优先搜索的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!