JavaScript数据结构之二叉树的查找算法示例


Posted in Javascript onApril 13, 2017

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

前面文章介绍了二叉树的遍历,现在谈谈在二叉树中进行查找。对二叉查找树来说,一般有以下三类查找:最大值,最小值和给定值。

查找最小值就是遍历左子树,直到找到最后一个结点,这是因为在二叉查找树中较小的值总是在左子节点上的。

代码如下:

function getMin(){//查找最小值
    var current=this.root;//指向根节点
    while(current.left!=null){
      current=current.left;
    }
    return current.data;
}

同理可得查找最大值的代码如下:

function getMax(){//查找最大值
  var current=this.root;
  while(current.right!=null){//如果未找到右结点则一直找
    current=current.right;
  }
  return current.data;
}

而在二叉查找树中查找指定值也不难,就是依次判断节点值的查找值的大小,如果节点值小,则继续往右查找,如果节点值大,则继续往左查找,代码如下:

function find(data){//查找某个值
    var current=this.root;
    while(current!=null){
      if(current.data==data){
        return current;
      }else if(current.data>data){//如果节点值比寻找值大,则往左找
        current=current.left;
      }else{//如果节点值比寻找值小,则往右找
        current=current.right;
      }
    }//如果没找到则返回null
    return null;
}

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

Javascript 相关文章推荐
二级域名或跨域共享Cookies的实现方法
Aug 07 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
Feb 19 Javascript
javascript showModalDialog,open取得父窗口的方法
Mar 10 Javascript
jQuery对象[0]是什么含义?
Jul 31 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
JavaScript实现随机替换图片的方法
Apr 16 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
Javascript实现的SHA-256加密算法完整实例
Feb 02 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
javascript实现消灭星星小游戏简单版
Nov 15 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 #jQuery
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 #Javascript
vue如何引用其他组件(css和js)
Apr 13 #Javascript
JavaScript数据结构之二叉树的遍历算法示例
Apr 13 #Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 #jQuery
vue组件如何被其他项目引用
Apr 13 #Javascript
微信小程序开发之数据存储 参数传递 数据缓存
Apr 13 #Javascript
You might like
PHP静态新闻列表自动生成代码
2007/06/14 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python if not in 多条件判断代码
2016/09/21 Python
Python入门学习指南分享
2018/04/11 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
django在开发中取消外键约束的实现
2020/05/20 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
职专应届生求职信
2013/11/16 职场文书
生日宴会答谢词
2014/01/09 职场文书
护士辞职信模板
2014/01/20 职场文书
销售工作决心书
2015/02/04 职场文书
蜗居观后感
2015/06/11 职场文书
实习证明格式范文
2015/06/16 职场文书
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers