深度优先遍历(JavaScript中深度优先遍历和广度优先遍历算法怎么用)

发布时间:2025-12-11 02:46:17 浏览次数:3

具体如下:

1、深度优先遍历的递归写法

functiondeepTraversal(node){varnodes=[];if(node!=null){nodes.push(node);varchildren=node.children;for(vari=0;i<children.length;i++)deepTraversal(children[i]);}returnnodes;}

2、深度优先遍历的非递归写法

functiondeepTraversal(node){varnodes=[];if(node!=null){varstack=[];stack.push(node);while(stack.length!=0){varitem=stack.pop();nodes.push(item);varchildren=item.children;for(vari=children.length-1;i>=0;i--)stack.push(children[i]);}}returnnodes;}

3、广度优先遍历的递归写法:

报错:Maximum call stack size exceeded(…)

functionwideTraversal(node){varnodes=[];vari=0;if(!(node==null)){nodes.push(node);wideTraversal(node.nextElementSibling);node=nodes[i++];wideTraversal(node.firstElementChild);}returnnodes;}

4、广度优先遍历的非递归写法

functionwideTraversal(selectNode){varnodes=[];if(selectNode!=null){varqueue=[];queue.unshift(selectNode);while(queue.length!=0){varitem=queue.shift();nodes.push(item);varchildren=item.children;for(vari=0;i<children.length;i++)queue.push(children[i]);}}returnnodes;}

到此,关于“JavaScript中深度优先遍历和广度优先遍历算法怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注本站网站,小编会继续努力为大家带来更多实用的文章!

深度优先遍历
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477