<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 深度遍歷優先與廣度遍歷優先的區別 * 深度遍歷優先,先找子孫后代,再找兄弟, 有回溯(入棧彈棧)操作,所以速度慢些 * 廣度遍歷優先,先找兄弟,再找子孫,無回溯速度快,但是多了隊列的存儲,占用內存會大些 <br> ## 深度遍歷優先 ``` var tree = [{ name: '文件夾0', expand: false, children: [{ name: '文件夾2', expand: false, children: [{ name: '文件夾4', expand: false, }, { name: '文件夾5', expand: false, children: [{ name: '文件夾6', expand: false, children: [{ name: '文件夾7', expand: false, children: [{ name: '文件夾8', expand: false, children: [{ name: '文件夾9', expand: false, children: [{ name: '文件夾10', expand: false, children: [{ name: '文件夾11', expand: false, children: [{ name: '文件夾12', expand: false, children: [{ name: '文件夾13', expand: false, children: [{ name: '文件夾14', expand: false, children: [{ name: '文件夾15', expand: false }] }] }] }] }] }] }] }] }] }] }] }, { name: '文件夾3', expand: false } ] }, { name: '文件夾1', expand: false } ] // 深度遍歷優先 function expandAll(tree) { tree.forEach(node => { node.expand = true; if (node.children && Array.isArray(node.children) && node.children.length > 0) { expandAll(node.children); } }); } // 開始計算t1時間 console.time('t1'); for (let i = 0; i < 10000; i++) { expandAll(tree); } // t1時間計算結束 console.timeEnd('t1'); console.log(tree); ``` <br> ## 廣度優先遍歷 ``` var tree = [{ name: '文件夾0', expand: false, children: [{ name: '文件夾2', expand: false, children: [{ name: '文件夾4', expand: false, }, { name: '文件夾5', expand: false, children: [{ name: '文件夾6', expand: false, children: [{ name: '文件夾7', expand: false, children: [{ name: '文件夾8', expand: false, children: [{ name: '文件夾9', expand: false, children: [{ name: '文件夾10', expand: false, children: [{ name: '文件夾11', expand: false, children: [{ name: '文件夾12', expand: false, children: [{ name: '文件夾13', expand: false, children: [{ name: '文件夾14', expand: false, children: [{ name: '文件夾15', expand: false }] }] }] }] }] }] }] }] }] }] }] }, { name: '文件夾3', expand: false } ] }, { name: '文件夾1', expand: false } ] // 廣度遍歷優先 function expandAll(tree) { let queue = []; tree.forEach(node => { queue.push(node); }); for(;queue.length > 0;){ let node = queue.shift(); node.expand = true; if(Array.isArray(node.children) && node.children.length > 0){ node.children.forEach(child => { queue.push(child); }); } } } console.time('t2'); for (let i = 0; i < 10000; i++) { expandAll(tree); } console.timeEnd('t2'); console.log(tree); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看