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 IFrame 强制刷新代码
Jul 23 Javascript
一些javascript一些题目的解析
Dec 25 Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 Javascript
javascript中call,apply,bind的用法对比分析
Feb 12 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
js小数运算出现多位小数如何解决
Oct 08 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
JavaScript 基础表单验证示例(纯Js实现)
Jul 20 Javascript
angular第三方包开发整理(小结)
Apr 19 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 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
PHP5 安装方法
2007/01/15 PHP
PHP技术开发技巧分享
2010/03/23 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
python转换摩斯密码示例
2014/02/16 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
详解Python中DOM方法的动态性
2015/04/11 Python
Python的Django框架安装全攻略
2015/07/15 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
澳大利亚网上书店:QBD
2021/01/09 全球购物
护士毕业生自我鉴定
2014/02/08 职场文书
2014年度党员自我评议
2014/09/13 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
小学优秀学生评语
2014/12/29 职场文书
世界红十字日活动总结
2015/02/10 职场文书
军训结束新闻稿
2015/07/17 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python