# 深度广度优先

# 深度优先

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
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

# 广度优先

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
最后更新时间: 9/9/2021, 4:14:44 PM