Javascript实现从小到大的数组转换成二叉搜索树
废话不多说了,直接给大家贴代码了,具体代码如下所示:
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数据结构之二叉搜索树实现方法
本文实例讲述了javascript二叉搜索树实现方法.分享给大家供大家参考,具体如下: 二叉搜索树:顾名思义,树上每个节点最多只有二根分叉:而且左分叉节点的值 < 右分叉节点的值 . 特点:插入节点.找最大/最小节点.节点值排序 非常方便 二叉搜索树-javascript实现 <script type="text/javascript"> // <![CDATA[ //打印输出 function println(msg) { document.write(msg
-
javascript算法之二叉搜索树的示例代码
什么是二叉树 二叉树就是树的每个节点最多只能有两个子节点 什么是二叉搜索树 二叉搜索树在二叉树的基础上,多了一个条件,就是二叉树在插入值时,若插入值比当前节点小,就插入到左节点,否则插入到右节点:若插入过程中,左节点或右节点已经存在,那么继续按如上规则比较,直到遇到一个新的节点. 二叉搜索树的特性 二叉搜索树由于其独特的数据结构,使得其无论在增删,还是查找,时间复杂度都是O(h),h为二叉树的高度.因此二叉树应该尽量的矮,即左右节点尽量平衡. 二叉搜索树的构造 要构造二叉搜索树,首先要构造二叉树
-
Javascript实现从小到大的数组转换成二叉搜索树
废话不多说了,直接给大家贴代码了,具体代码如下所示: 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 = rig
-
JavaScript如何将伪数组转换成数组
目录 前言 什么是伪数组? 转换 ES5 的做法 方法1 方法2 ES6的做法 第三个参数的用法(不常用) Array.from 其他玩法 把字符串转换成数组 前言 在 JS 中,伪数组 是非常常见的,它也叫 类数组.伪数组可能会给 JS 初学者带来一点困扰. 本文将详细讲解 什么是伪数组,以及分别在 ES5 和 ES6 中将伪数组转换成真正的数组 . 什么是伪数组? 伪数组的主要特征:它是一个对象,并且该对象有 length 属性 比如: let arrayLike = { "0":
-
Java编程一维数组转换成二维数组实例代码
简介:由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组.因此,在这里记录一下,也希望对他人有帮助. 实例代码: package deal; public class ArryTest { public static void main(String[] args) { //创建一个一维数组 0,1,2,3...,10 double [] c= new double[10]; for (int i = 0; i < c.length; i++) { c[i]=i; } double[][
-
如何利用JavaScript实现二叉搜索树
计算机科学中最常用和讨论最多的数据结构之一是二叉搜索树.这通常是引入的第一个具有非线性插入算法的数据结构.二叉搜索树类似于双链表,每个节点包含一些数据,以及两个指向其他节点的指针:它们在这些节点彼此相关联的方式上有所不同.二叉搜索树节点的指针通常被称为"左"和"右",用来指示与当前值相关的子树.这种节点的简单 JavaScript 实现如下: var node = { value: 125, left: null, right: null }; 从名称中可以看出,二
-
C++如何将二叉搜索树转换成双向循环链表(双指针或数组)
目录 二叉搜索树转换成双向循环链表 二叉搜索树与双向链表(C++中等区) 解题思路 代码展示 二叉搜索树转换成双向循环链表 本文解法基于性质:二叉搜索树的中序遍历为 递增序列 . 将二叉搜索树 转换成一个 “排序的循环双向链表”,其中包含三个要素: 1.排序链表:节点应从小到大排序,因此应使用 中序遍历 2.“从小到大”访问树的节点.双向链表:在构建相邻节点的引用关系时,设前驱节点 pre 和当前节点 cur , 不仅应构建 pre.right= cur,也应构建 cur.left = pre
-
php实现将二维关联数组转换成字符串的方法详解
本文实例讲述了php实现将二维关联数组转换成字符串的方法.分享给大家供大家参考,具体如下: 需求 项目中遇到了二维关联数组转字符串的问题,查阅相关资料,写了如下程序,并且能过滤重复的关键字. 举例,php的二维数组如下: $name = array( "self" => "wangzhengyi", "student" => array( "chenshan", "xiaolingang" ),
-
JavaScript将数组转换成CSV格式的方法
本文实例讲述了JavaScript将数组转换成CSV格式的方法.分享给大家供大家参考.具体分析如下: JavaScript中数组对象的valueOf方法可以将数组的值输出为逗号分割的字符串,下面的代码演示了如何将数组抓换成逗号和竖线分割的字符串 var fruits = ['apple', 'peaches', 'oranges', 'mangoes']; var str = fruits.valueOf(); //输出结果: apple,peaches,oranges,mangoes 如果希望
-
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
本文实例讲述了JavaScript+Canvas实现彩色图片转换成黑白图片的方法.分享给大家供大家参考,具体如下: 1.convertToGray() 在主体代码中使用 canvas 元素的id来获取画布,并设置画布的宽和高为图片的宽和高,再将上下文初始化为2d画布:彩色图片加载完成后,使用 drawImage() 将图片加载到上下文,调用用于完成剩余绘制工作的 getColorData()和 putColorData():最后为myImage指定彩色图片的路径. 2.getColorData(
-
JS Array.from()将伪数组转换成数组的方法示例
Array.from 方法用于将两类对象转换为真正的数组: 1.类似数组的对象,可以理解为"伪数组" 2.可遍历对象(比如字符串) 什么是伪数组? 伪数组都有一个基本的特点:必须有 length 属性. let arrayLike = { "0": "a", "1": "b", "2": "c", "length": 3 } 像上面的 arrayL
-
php将数组转换成csv格式文件输出的方法
本文实例讲述了php将数组转换成csv格式文件输出的方法.分享给大家供大家参考.具体实现方法如下: <?php $sales = array( array('east','2005-01-01','2005-02-01',12.54), array('west','2005-01-01','2005-02-01',546.33), array('south','2005-01-01','2005-02-01',93.26), array('north','2005-01-01','2005-02
随机推荐
- mongodb 3.4下远程连接认证失败的解决方法
- Python使用cx_Oracle调用Oracle存储过程的方法示例
- SQL Server 向临时表插入数据示例
- 详解iOS App设计模式开发中对于享元模式的运用
- 使用linq to xml修改app.config示例(linq读取xml)
- 微信封装的调用微信签名包的类库
- PHP性能优化工具篇Benchmark类调试执行时间
- 新入门node.js必须要知道的概念(必看篇)
- javascript iframe跨域详解
- ajax动态为a标签href赋值不执行跳转的原因分析及解决
- linux corosync+pacemaker+drbd+mysql配置安装详解
- js canvas实现擦除动画
- webpack实现热加载自动刷新的方法
- C#编程实现带有Aero效果的窗体示例
- Android自定义PopupWindow仿点击弹出分享功能
- vue 子组件向父组件传值方法
- JS实现的简单tab切换功能完整示例
- python django 原生sql 获取数据的例子
- javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair 解决方法总结
- React路由鉴权的实现方法