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 相关文章推荐
asp.net+jquery滚动滚动条加载数据的下拉控件
Jun 25 Javascript
javascript常用的正则表达式实例
May 15 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 Javascript
在ABP框架中使用BootstrapTable组件的方法
Jul 31 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 Javascript
vue大型项目之分模块运行/打包的实现
Sep 21 Javascript
Javascript柯里化实现原理及作用解析
Oct 22 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学习笔记之二 php入门知识
2011/01/12 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
javascript 快速排序函数代码
2012/05/30 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
JS交换变量的方法
2015/01/21 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
vue 权限认证token的实现方法
2018/07/17 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
Python timeit模块原理及使用方法
2020/10/10 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
幼儿发展评估方案
2014/06/11 职场文书
课外活动实习计划
2015/01/19 职场文书
解析Java异步之call future
2021/06/14 Java/Android