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弹出层插件简化版代码下载
Oct 16 Javascript
prototype 学习笔记整理
Jul 17 Javascript
快速排序 php与javascript的不同之处
Feb 22 Javascript
JSON+JavaScript处理JSON的简单例子
Mar 20 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
javascript + jquery实现定时修改文章标题
Mar 19 Javascript
js如何判断用户是在PC端和还是移动端访问
Apr 24 Javascript
详解Vue.js动态绑定class
Dec 20 Javascript
使用重写url机制实现验证码换一张功能
Aug 01 Javascript
d3.js 地铁轨道交通项目实战
Nov 27 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 Javascript
为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
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
python开发之str.format()用法实例分析
2016/02/22 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python发送邮件实现基础解析
2020/08/14 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
书法比赛获奖感言
2014/02/10 职场文书
小学清明节活动总结
2014/07/04 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
离婚协议书样本
2015/01/26 职场文书
文员岗位职责
2015/02/04 职场文书
李白故里导游词
2015/02/12 职场文书
工作收入证明模板
2015/06/12 职场文书
golang实现浏览器导出excel文件功能
2022/03/25 Golang
Nginx利用Logrotate实现日志分割
2022/05/20 Servers
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS