首页 > 其他 > 详细

深度遍历,广度遍历的理解

时间:2021-04-14 00:04:25      阅读:22      评论:0      收藏:0      [点我收藏+]
var node = document.getElementById(‘D1‘);
function rangeInterator(node){
var arr = [];
arr.push(node);
while(arr.length > 0){
node = arr.shift();
if(node.children.length > 0){
for (var i = 0; i < node.children.length; i++){
arr.push(node.children[i])
}
}
}
}
console.time(‘rangeInterator‘)
rangeInterator(node)
console.timeEnd(‘rangeInterator‘)
function depInterator(node){
if(node.children.length>0){
for(let j=0;j<node.children.length;j++){
depInterator(node.children[i])
}
}
}
console.time(‘depInterator‘)
rangeInterator(node)
console.timeEnd(‘depInterator‘)
 
<div id="D1" class="D1">
<div class="d1">
<p class="p1"></p>
</div>
<div class="d2">
<p class="p2">
<i></i>
</p>
</div>
</div>
个人理解是当数据多的时候明显是深度遍历更优,少的时候广度遍历更优
其实这里我开始的时候纠结了一会,因为当时我找不到广度遍历和深度遍历区别,后来我发现了,其实广度遍历就是从根结点开始,然后把,子节点(所有)通过for循环放到数组里面,然后去这个数组中的第一个元素,注意:此时我们判断这个元素有没有子元素,如果有,只取子节点的,循环把子节点push到数组里面。
这就是实现顺序的精髓所在,不懂得可以看看打印的东西,可以帮助理解

深度遍历,广度遍历的理解

原文:https://www.cnblogs.com/MDGE/p/14654841.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!