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 相关文章推荐
JavaScript传递变量: 值传递?引用传递?
Feb 22 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
Feb 14 Javascript
Angular.js中下拉框实现渲染html的方法
Jun 18 Javascript
Node.js 8 中的重要新特性
Jun 28 Javascript
JS中Attr的用法详解
Oct 09 Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
vue2中使用less简易教程
Mar 27 Javascript
vue将单页面改造成多页面应用的方法
Nov 25 Javascript
JavaScript基础之静态方法和实例方法分析
Dec 26 Javascript
js实现拖拽与碰撞检测
Sep 18 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常用的文件操作函数经典收藏
2013/04/02 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
自己的js工具_Form 封装
2009/08/21 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
JavaScript模拟数组合并concat
2016/03/06 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
餐饮加盟计划书
2014/01/10 职场文书
七年级历史教学反思
2014/02/05 职场文书
军训自我鉴定100字
2014/02/13 职场文书
单位在职证明书
2014/09/11 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
统计工作个人总结
2015/03/03 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
给校长的建议书作文400字
2015/09/14 职场文书