Javascript实现从小到大的数组转换成二叉搜索树


Posted in Javascript onJune 13, 2017

废话不多说了,直接给大家贴代码了,具体代码如下所示:

var Array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
var Tree = createTree(Array); 
console.log(Tree); 
// 构造一个节点 
function Node(nodeData, leftData, rightData) { 
  this.nodeData = nodeData; 
  this.leftData = leftData; 
  this.rightData = rightData; 
} 
// 每次取中点作为根节点,向左和向右递归 
function createTree(array) { 
  if (array.length <= 0) { 
    return null; 
  } else { 
    var mid = parseInt(array.length / 2); 
    var node = new Node(array[mid], null, null); 
    var leftArray = array.slice(0 , mid); 
    var rightArray = array.slice(mid + 1 , array.length ); 
    node.leftData = createTree(leftArray); 
    node.rightData = createTree(rightArray); 
    return node; 
  } 
}

以上所述是小编给大家介绍的Javascript实现从小到大的数组转换成二叉搜索树,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js左侧多级菜单动态的解决方案
Feb 01 Javascript
js 处理URL实用技巧
Nov 23 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
js表单序列化判断空值的实例
Sep 22 Javascript
Node层模拟实现multipart表单的文件上传示例
Jan 02 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
js实现磁性吸附的示例
Oct 26 Javascript
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 #Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 #Javascript
微信小程序动态显示项目倒计时效果
Jun 13 #Javascript
深究AngularJS之ui-router详解
Jun 13 #Javascript
微信小程序自定义导航隐藏和显示功能
Jun 13 #Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 #Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 #Javascript
You might like
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
测试你的JS的掌握程度的代码
2009/12/09 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
深入浅析python的第三方库pandas
2020/02/13 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
保安员岗位职责
2013/11/17 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
人与自然的观后感
2015/06/18 职场文书
付款证明模板
2015/06/19 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript
设置IIS Express并发数
2022/07/07 Servers