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 相关文章推荐
Prototype使用指南之array.js
Jan 10 Javascript
jquery 最简单的属性菜单
Oct 08 Javascript
验证码按回车不变解决方法
Mar 29 Javascript
鼠标移动到图片名上,显示图片的简单实例
Jul 14 Javascript
JavaScript获取某年某月的最后一天附截图
Jun 23 Javascript
深入探讨javascript函数式编程
Oct 11 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
js编写三级联动简单案例
Dec 21 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
js实现二级联动简单实例
Jan 11 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 pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
总结一些js自定义的函数
2006/08/05 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
Python中title()方法的使用简介
2015/05/20 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python内置模块logging用法实例分析
2018/02/12 Python
flask-restful使用总结
2018/12/04 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
经销商培训邀请函
2014/01/21 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
借款协议书
2014/04/12 职场文书
关于运动会的广播稿
2014/09/22 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android