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 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
基于jquery的$.ajax async使用
Oct 19 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
Jun 05 Javascript
jQuery EasyUI Pagination实现分页的常用方法
May 21 Javascript
js实现下拉菜单效果
Mar 01 Javascript
vue.js将时间戳转化为日期格式的实现代码
Jun 05 Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
js利用拖放实现添加删除
Aug 27 Javascript
vue解决跨域问题(推荐)
Nov 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
实用函数7
2007/11/08 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
php通过各种函数判断0和空
2020/07/04 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
广告显示判断
2006/08/31 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python 日期排序的实例代码
2019/07/11 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
python调用私有属性的方法总结
2020/07/24 Python
详解Python中import机制
2020/09/11 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
个人合作协议书范本
2014/04/18 职场文书
2014年秘书工作总结
2014/11/25 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS