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 相关文章推荐
超强的IE背景图片闪烁(抖动)的解决办法
Sep 09 Javascript
用JavaScript实现单继承和多继承的简单方法
Mar 29 Javascript
JQuery入门—编写一个简单的JQuery应用案例
Jan 03 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
js实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
基于jQuery实现仿淘宝套餐选择插件
Mar 04 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
漂亮实用的页面loading(加载)封装代码
Feb 03 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
微信小程序实现左右联动的实战记录
Jul 05 Javascript
全面解析JavaScript Module模式
Jul 24 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 Ajax乱码
2008/04/09 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
jsTree使用记录实例
2016/12/01 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
python初步实现word2vec操作
2020/06/09 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
如何开启linux的ssh服务
2013/06/03 面试题
食品安全标语
2014/06/07 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
出国留学英文自荐信
2015/03/25 职场文书
乱世佳人观后感
2015/06/08 职场文书
十八大观后感
2015/06/12 职场文书
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers
如何利用python实现Simhash算法
2022/06/28 Python