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 相关文章推荐
判断脚本加载是否完成的方法
May 26 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
Mar 25 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
Jquery实现简单的轮播效果(代码管用)
Mar 14 Javascript
jquery.validate使用详解
Jun 02 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
Layui数据表格之获取表格中所有的数据方法
Aug 20 Javascript
JavaScript判断对象和数组的两种方法
May 31 Javascript
JavaScript常用内置对象用法分析
Jul 09 Javascript
JavaScript实现文件下载并重命名代码实例
Dec 12 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 上传文件大小限制
2009/07/05 PHP
表格展示无限级分类(PHP版)
2012/08/21 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php备份数据库类分享
2015/04/14 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python选择排序算法实例总结
2015/07/01 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python Django的web开发实例(入门)
2019/07/31 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
python爬虫实现获取下一页代码
2020/03/13 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
厂长助理岗位职责
2013/12/27 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
真诚的求职信
2014/07/04 职场文书
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android