[js] 解释下深度优先遍历和广度优先遍历的区别及如何实现

[js] 解释下深度优先遍历和广度优先遍历的区别及如何实现

1、深度优先采用堆栈结构,先进后出,所占的空间较小,执行时间较长;
2、广度优先采用队列结构先进先出,所占空间较大,执行时间短,空间换时间;const data = [{name: 'a',children: [{ name: 'b', children: [{ name: 'e' }] },{ name: 'c', children: [{ name: 'f' }] },{ name: 'd', children: [{ name: 'g' }] },],},{name: 'a2',children: [{ name: 'b2', children: [{ name: 'e2' }] },{ name: 'c2', children: [{ name: 'f2' }] },{ name: 'd2', children: [{ name: 'g2' }] },],}]//深度优先function byDeepth(data) {let result = []const map = (item) => {result.push(item.name)item.children && item.children.forEach((item) => map(item))}data.forEach((item) => {map(item)})return result.join(',')}//广度优先function byBreadth(data) {let result = []let queque = datawhile (queque.length > 0) {result.push(queque[0].name)if (queque[0].children) {queque = queque.concat(queque[0].children)}queque.shift()}return result.join(',')}console.time('深度优先')console.log('深度优先', byDeepth(data))console.timeEnd('深度优先')console.time('广度优先')console.log('广度优先', byBreadth(data))console.timeEnd('广度优先')

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RDD特性

转载于:https://www.cnblogs.com/ggzhangxiaochao/p/9237510.html

MMI_UT洛达检测软件使用,检测1562A

MMI_UT软件下载链接 > https://t.1yb.co/nLFU 如下为使用教程 关于华强北耳机如何检测已经写过几篇文章了,从后台看到大家给到我的私信,有时候真的挺多感慨的,买个jia耳机确实不容易啊~ 突然发现比买个正品还难,正品就算别的…

[js] 你认为es5的设计缺陷有哪些?

[js] 你认为es5的设计缺陷有哪些? 可以反过来想,es6新增的特性就是为了解决es5的设计缺陷个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

安卓如何修改华强北二代耳机敲击指令?

经常有小伙伴在公中号后台私信我,小源!为啥我的二代耳机敲击不管用啊~ 害,先检查一下是不是敲击的这个部位~ 如果敲击部位确认没问题的话,就要看一下是不是敲击设置的问题,默认左耳双击切换下一曲,默认右耳…

[js] 使用ajax轮询接口有什么优缺点?

[js] 使用ajax轮询接口有什么优缺点? 首先,所谓轮询接口的原理是 利用 setTimeout 定时请求API接口优点: 1,可以简单不用二次 开发websocket 实现所需功能 几乎没有学习成本 2,使用简单 缺点: 1&#xff0…

Django 2.0 学习(20):Django 中间件详解

Django 中间件详解 Django中间件 在Django中,中间件(middleware)其实就是一个类,在请求到来和结束后,Django会根据自己的规则在合适的时机执行中间件中相应的方法。 1.执行完所有的request方法到达执行流程;2.执行中间件的其他方法…

华强北二代悦虎1562M升级固件图文教程(详细多图文)

本文演示的固件在下方链接获取。 悦虎固件链接:https://t.1yb.co/kQH4 如下是刷固件(151版本)的图文步骤,注意,必须是悦虎1562M芯片。 PS:注意,此时所有的操作都是建立在耳机放在充电仓外的情况下执行。请结合图片文…

[js] 如何提升JSON.stringify的性能

[js] 如何提升JSON.stringify的性能 用第二个参数指定需要转换的属性,按需转换个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

华强北三代悦虎1562A怎么样?

最近华强北三代耳机的更新频率有点高啊… 我这更文都快跟不上了。。 比如最近新出的慧联A6pro、悦虎三代1562A、大公牛等等,相信手快的小伙伴,估计这会都已经用上了吧? 刚好手里有一个悦虎,结合最近的使用情况,这一…

[js] 说说你对JS中暂性死区的理解,它有什么运用场景?

[js] 说说你对JS中暂性死区的理解,它有什么运用场景? var v1; {v 2;let v; }这里候会报错: Cannot access v before initialization个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。…

Java多线程(五) —— 线程并发库之锁机制

参考文献: http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 一、Lock与ReentrantLock 前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明。从这一章开始花少量的篇幅谈谈锁机制。 上一个章…

改丝印的假华强北三代1562A,用芯良苦!

今天带大家了解的主要内容,含j商在线battle: 不要再使用老版本检测软件检测了!其他芯片改丝印洛达1562A,用芯良苦!辨别真假洛达1562A的几种方式上当的一些小伙伴的亲身案例(在线battle) 1、不要再使用老版本检测软件…

[js] 微信的JSSDK都有哪些内容?如何接入?

[js] 微信的JSSDK都有哪些内容?如何接入? 微信JS-SDK:是开发者在网页上通过JavaScript代码使用微信原生功能的工具包,开发者可以使用它在网页上录制和播放微信语音、监听微信分享、上传手机本地图片、拍照等许多能力。JSSDK使用步…

记一次Linux磁盘满盘/dev/vda1目录清理记录

记一次 Linux 磁盘满盘记录,最近发现自己的个人站非常卡顿,因为前段时间才加的带宽,所以肯定不是网速问题,查了下磁盘。。差点满了。。 1、磁盘占用情况命令:df -h df -h2、找出占比比较高的目录 #查看各目录空间占…

安装 Power BI 报表服务器

开始之前 建议在安装 Power BI 报表服务器之前先查看安装 Power BI 报表服务器所要满足的硬件和软件要求。 Power BI 报表服务器产品密钥 Power BI Premium 如果已购买 Power BI Premium,则可以在 Power BI 管理门户的“Premium 设置”选项卡中访问 Power BI 报表服…

[js] document.domain的作用是什么?它有什么限制?

[js] document.domain的作用是什么?它有什么限制? document.domain 能够实现部分情况下的跨域访问的问题。两个域名必须属于同一个基础域名!而且所用的协议,端口都要一致(端口可以在两个页面都设置domain,将端口重置为null 来实现…

DT100pro上手体验

好久没写过手表类的了,年初的时候持"巨资"拿了块HQB手表(u98plus),然后写了下面这篇文章(没看过的感兴趣的可以看看),从手表不菲的售价到实际到手后的体验,个人感觉一般,尤其是u98p匹配的APP做的真的很一般&…

[js] axios为什么可以使用对象和函数两种方式调用?是如何实现的?

[js] axios为什么可以使用对象和函数两种方式调用?是如何实现的? axios 源码 初始化 看源码第一步,先看package.json。一般都会申明 main 主入口文件。 // package.json { “name”: “axios”, “version”: “0.19.0”, “description”: …

SpringBoot集成thymeleaf增删改查示例

有小伙伴找我要个 thymeleaf 的 demo,说自己集成的总是报错,所以就有了这篇… 关于什么是 thymeleaf 我就不赘述了,相信搜到这篇的大部分是奔着如何集成来的。 本文源码先附上:https://gitee.com/niceyoo/springboot-thymeleaf-…

转:基于TLS1.3的微信安全通信协议mmtls介绍

转自: https://mp.weixin.qq.com/s?__bizMzAwNDY1ODY2OQ&mid2649286266&idx1&snf5d049033e251cccc22e163532355ddf&scene0&keyb28b03434249256b2a5d4fdf323a185a798eaf972317ca3a47ef060d35c5cd8a4ae35715466d5bb5a558e424d20bef6c&ascene…