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 相关文章推荐
Javascript typeof 用法
Dec 28 Javascript
理解Javascript_09_Function与Object
Oct 16 Javascript
JQuery 选择和过滤方法代码总结
Nov 19 Javascript
jQuery选择器全集详解
Nov 24 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
Bootstrap整体框架之JavaScript插件架构
Dec 15 Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
Mar 15 Javascript
AngularJs分页插件使用详解
Jun 30 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 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
剖析 PHP 中的输出缓冲
2006/12/21 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
python中的闭包用法实例详解
2015/05/05 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
母亲七十大寿答谢词
2014/01/18 职场文书
初中学生期末评语
2014/04/24 职场文书
读书活动总结范文
2014/04/26 职场文书
青春励志演讲稿
2014/04/29 职场文书
学校施工安全责任书
2015/01/29 职场文书
任命书格式模板
2015/09/22 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
2019 入党申请书范文
2019/07/10 职场文书
六年级作文之家庭作文
2019/12/12 职场文书