小编Dev*_*khe的帖子

如何从javascript中的数组制作二叉树?

我有一个数组 var array = [8,10,12,5,3,6];

逻辑

  1. 第一个节点将是根节点。
  2. 如果新节点值小于或等于=<父节点,它将是父节点的左节点
  3. 如果新节点值大于>父节点,则为父节点的右节点

我正在尝试实现如下对象的输出:

{
   value:8,
   left:{
      value:5,
      left:{ value:3 },
      right:{value:6}
   },
   right:{
      value:10,
      right:{value:12}
   }
}
Run Code Online (Sandbox Code Playgroud)

这将是这样的图像

在此处输入图片说明

我试过下面的代码:

var arr = [8,10,12,5,3,6];
var root = arr[0];
var rv = {};
for (var i = 0; i < arr.length; i++){
    if(arr[i] < root){
    rv.left = arr[i];
  }else{
    rv.right = arr[i];
  }
}
console.log(rv);
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。

javascript arrays tree binary-tree

7
推荐指数
2
解决办法
9124
查看次数

标签 统计

arrays ×1

binary-tree ×1

javascript ×1

tree ×1