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 相关文章推荐
js 页面输出值
Nov 30 Javascript
javascript操作referer详细解析
Mar 10 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
JavaScript匿名函数用法分析
Feb 13 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
详述 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
python绘制随机网络图形示例
2019/11/21 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
python 5个顶级异步框架推荐
2020/09/09 Python
pip install命令安装扩展库整理
2021/03/02 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
校园公益广告语
2014/03/13 职场文书
安全施工标语
2014/06/07 职场文书
先进班组材料范文
2014/12/25 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
AJAX实现省市县三级联动效果
2021/10/16 Javascript
Java异常体系非正常停止和分类
2022/06/14 Java/Android
Rust中的Struct使用示例详解
2022/08/14 Javascript