树-DFS(深度优先搜索)和BFS(广度优先搜索)广度优先搜索算法

<!DOCTYPE html>

<html lang="en">

 

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>YYK</title>

<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

<style>

* {

margin: 0;

padding: 0;

}

</style>

</head>

 

<body>

<script>

 

const tree = {

name: 'root',

children: [

{

name: 'c1',

children: [

{

name: 'c11',

children: []

},

{

name: 'c12',

children: []

}

]

},

{

name: 'c2',

children: [

{

name: 'c21',

children: []

},

{

name: 'c22',

children: []

}

]

}

]

}

// 递归 --深度优先

function deep(tree){

let result = [];

if(tree.name){

result.push(tree.name)

}

if(tree.children){

for(let i = 0 ;i < tree.children.length ;i++){

result.push(...deep(tree.children[i]));

}

}

return result;

}

let res1 = deep(tree);

// 广度优先

function bfsFun(tree){

let result = [];

let queue = [];

queue.push(tree);

while(queue.length > 0){

const cur = queue.shift();

result.push(cur.name);

if(cur.children){

cur.children.forEach(item => {

queue.push(item);

});

}

}

return result;

}

let res2 = bfsFun(tree);

// 深度-优先

function dfsFun(){

let result = [];

let queue = [];

queue.push(tree);

while(queue.length > 0){

const cur = queue.pop();

result.push(cur.name);

if(cur.children){

cur.children.reverse().forEach(item => {

queue.push(item);

});

}

}

return result;

}

let res1_1 = dfsFun(tree);




 

</script>

</body>

 

</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值