# 深度广度优先
# 深度优先
function deepFirstSearch(node, nodeList=[]) {
if (node) {
nodeList.push(node);
var children = node.children;
for (var i = 0; i < children.length; i++) {
deepFirstSearch(children[i], nodeList);
}
}
return nodeList;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
function deepFirstSearch(node) {
var nodes = [];
if (node != null) {
var stack = [];
stack.push(node);
while (stack.length != 0) {
var item = stack.pop();
nodes.push(item);
var children = item.children;
for (var i = children.length - 1; i >= 0; i--)
stack.push(children[i]);
}
}
}
return nodes;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 广度优先
function breadthFirstSearch(node) {
var nodes = [];
if (node) {
var queue = [];
queue.unshift(node);
while (queue.length) {
var item = queue.shift();
nodes.push(item);
var children = item.children;
for (var i = 0; i < children.length; i++){
queue.push(children[i]);
}
}
}
return nodes;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
← 查找文件中的图片并下载 累加函数 →