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广告实现代码
Nov 17 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
Mar 15 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
JavaScript将取代AppleScript?
Sep 18 Javascript
jquery滚动特效集锦
Jun 03 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
原生js实现返回顶部缓冲效果
Jan 18 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
AutoJs实现刷宝短视频的思路详解
May 22 Javascript
el-form 多层级表单的实现示例
Sep 10 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
缅甸的咖啡简史
2021/03/04 咖啡文化
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
EJB timer的种类
2014/10/28 面试题
教师自我评价范文
2013/12/16 职场文书
ktv中秋节活动方案
2014/01/30 职场文书
党课培训心得体会
2014/09/02 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
志愿者个人总结
2015/03/03 职场文书
护理工作个人总结
2015/03/03 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
大学军训通讯稿
2015/07/18 职场文书
《火烧云》教学反思
2016/02/23 职场文书
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers