美文网首页
深度优先和广度优先 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