美文网首页
深度优先和广度优先 2020-06-15

深度优先和广度优先 2020-06-15

作者: Allan要做活神仙 | 来源:发表于2020-06-15 17:14 被阅读0次
  <div id="root1">
    <ul>
         <li>
             <a href="">
                 <img src="" alt="">
             </a>
         </li>
         <li>
             <span></span>
         </li>
         <li>
         </li>
     </ul>
     <p></p>
     <button></button>
 </div>

广度优先:
利用队列先进先出原理

function breadthTra(node) {
  var queue = [], // 开辟一个临时队列,用于组装
    res = []
  if (node) {
    queue.push(node)
    while (queue.length) {
      var item = queue.shift() // 取出第一项
      res.push(item) // [div]
      for (var i = 0; i < item.children.length; i++) {
        queue.push(item.children[i])
      }
    }
  }

  console.log(res, 11)
  return res
}

深度优先:
【递归】当前节点(node)下面的子节点(node.children)

function deepTra(node){
        let res = [];
        if(node !== null) {
            res.push(node);
            let child = node.children;
            for(let i=0;i<chid.length;i++){
                deepTra(child[i]);
            }
        }
        return res;
    }

相关文章

网友评论

      本文标题:深度优先和广度优先 2020-06-15

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