JavaScript实现树的遍历算法示例【广度优先与深度优先】


Posted in Javascript onOctober 26, 2017

本文实例讲述了JavaScript实现树的遍历算法。分享给大家供大家参考,具体如下:

<script type="text/javascript">
var t = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19];
//下面这段深度优先搜索方法出自Aimingoo的【JavaScript语言精髓与编程实践】
var deepView = function(aTree,iNode) {
  (iNode in aTree) && (document.write(aTree[iNode]+'<br/>'),arguments.callee(aTree,2*iNode+1),arguments.callee(aTree,2*iNode+2))
}
//广度优先
var wideView = function(aTree,iNode) {
  var aRTree = aTree.slice(0),iRNode = iNode,iLevel = 1;
  (iRNode in aRTree) && document.write(aRTree[iRNode]+'<br/>');
  (function() {
    var iStart = iRNode*2+1,iEnd = iStart+Math.pow(2,iLevel);
    document.write(aRTree.slice(iStart,iEnd).join(',')+'<br/>');
    if(iEnd>=aRTree.length) return;
    iRNode = iStart,iLevel++,arguments.callee();
  })()
}
document.write('<h3>二叉树 深度优先</h3>');
//深度优先
deepView(t,0);
document.write('<h3>二叉树 广度优先</h3>');
//广度优先
wideView(t,0);
</script>

运行结果:

JavaScript实现树的遍历算法示例【广度优先与深度优先】

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
使用jscript实现二进制读写脚本代码
Jun 09 Javascript
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
JS可以控制样式的名称写法一览
Jan 16 Javascript
JS中位置与大小的获取方法
Nov 22 Javascript
原生javascript实现分页效果
Apr 21 Javascript
ztree实现权限横向显示功能
May 20 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
JS实现的缓冲运动效果示例
Apr 30 Javascript
Angular6 写一个简单的Select组件示例
Aug 20 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 #Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
Oct 26 #Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 #Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 #Javascript
Sublime Text新建.vue模板并高亮(图文教程)
Oct 26 #Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 #Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 #Javascript
You might like
MYSQL环境变量设置方法
2007/01/15 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
上诉答辩状范文
2015/05/22 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
mysql幻读详解实例以及解决办法
2022/06/16 MySQL