JavaScript数据结构之二叉树的遍历算法示例


Posted in Javascript onApril 13, 2017

本文实例讲述了JavaScript数据结构之二叉树的遍历算法。分享给大家供大家参考,具体如下:

三种遍历的代码:

function inOrder(node){//中序遍历
    if(node!=null){
      inOrder(node.left);
      document.write(node.show()+" ");
      inOrder(node.right);
    }
}
function preOrder(node){//先序遍历
    if(node!=null){
      document.write(node.show()+" ");
      preOrder(node.left);
      preOrder(node.right);
    }
}
function postOrder(node){//后序遍历
    if(node!=null){
      postOrder(node.left);
      postOrder(node.right);
      document.write(node.show()+" ");
    }
}

最后是实验代码:

var nums=new BST();
nums.insert(23);
nums.insert(45);
nums.insert(16);
nums.insert(37);
nums.insert(3);
nums.insert(99);
nums.insert(22);
inOrder(nums.root);//3 16 22 23 37 45 99
document.write("<br>");
preOrder(nums.root);//23 16 3 22 45 37 99
document.write("<br>");
postOrder(nums.root);//3 22 16 37 99 45 23

树的结构为:
                    23
           16              45
   3       22       37       99

对应的先序,中序,后序结果自行推导。

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

Javascript 相关文章推荐
JQuery Ajax通过Handler访问外部XML数据的代码
Jun 01 Javascript
js修改table中Td的值(定义td的双击事件)
Jan 10 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
Aug 24 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
JavaScript 最佳实践:帮你提升代码质量
Dec 03 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 Javascript
vue引入jq插件的实例讲解
Sep 12 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
Jul 17 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 #jQuery
vue组件如何被其他项目引用
Apr 13 #Javascript
微信小程序开发之数据存储 参数传递 数据缓存
Apr 13 #Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 #jQuery
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
Apr 13 #Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 #Javascript
详解vue的数据binding绑定原理
Apr 12 #Javascript
You might like
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
Javascript图像处理思路及实现代码
2012/12/25 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
Python中enumerate函数代码解析
2017/10/31 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
ipython和python区别详解
2019/06/26 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
心得体会范文
2014/01/04 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
协议书范文
2015/01/27 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
九年级数学教学反思
2016/02/17 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android