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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
Nov 30 Javascript
Vue基于NUXT的SSR详解
Oct 24 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
为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安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
django 环境变量配置过程详解
2019/08/06 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
上班早退检讨书
2014/01/09 职场文书
《母鸡》教学反思
2014/02/25 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
《青山不老》教学反思
2016/02/22 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers