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 相关文章推荐
不错的JS中变量相关的细节分析
Aug 13 Javascript
利用js动态添加删除table行的示例代码
Dec 16 Javascript
js实现遮罩层划出效果是生成div而不是显示
Jul 29 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
Vue.js tab实现选项卡切换
May 16 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 Javascript
js表达式与运算符简单操作示例
Feb 15 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邮件专题
2006/10/09 PHP
一篇不错的PHP基础学习笔记
2007/03/18 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
python实现决策树分类(2)
2018/08/30 Python
Python何时应该使用Lambda函数
2019/07/02 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
python实现两个文件夹的同步
2019/08/29 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
质检员的岗位职责
2013/11/15 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
教育学习自我评价
2014/02/03 职场文书
青春奉献演讲稿
2014/05/08 职场文书
书香家庭事迹材料
2014/05/09 职场文书
综治工作汇报材料
2014/10/27 职场文书
小学优秀学生评语
2014/12/29 职场文书
自主招生英文自荐信
2015/03/25 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis