Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery中从二维数组创建树_Javascript_Jquery_Arrays_Tree - Fatal编程技术网

Javascript 在jquery中从二维数组创建树

Javascript 在jquery中从二维数组创建树,javascript,jquery,arrays,tree,Javascript,Jquery,Arrays,Tree,我们正在尝试从2d数组创建一棵树,并希望检查该树中是否存在给定的节点 比如说 假设我们有这些数组 links = [[0,3],[2,4],[8,5],[9,1],[5,2],[1,5]] check = [[7,6],[1,2],[8,3],[8,9]] 必须给出结果 [false,true,false,true] 因为 1 and 2 are connected via 5 (1-5-2) 8 and 9 are connected via 5 and 1 (8-5-1-9) 根据我

我们正在尝试从2d数组创建一棵树,并希望检查该树中是否存在给定的节点

比如说 假设我们有这些数组

links = [[0,3],[2,4],[8,5],[9,1],[5,2],[1,5]]
check = [[7,6],[1,2],[8,3],[8,9]]
必须给出结果

 [false,true,false,true]
因为

1 and 2 are connected via 5 (1-5-2)
8 and 9 are connected via 5 and 1 (8-5-1-9)
根据我们的说法,我们的逻辑是1-5-2([5,2],[1,5]),8-5-1-9([8,5],[9,1],[1,5])是在数组中相互连接的树。如果我们可以创建这样的树,那么我们就可以解决这个问题

我写了一些树结构的代码,但没有给出正确的结果

var links = [[0,3],[2,4],[8,5],[9,1],[5,2],[1,5]];
var check = [[7,6],[1,2],[8,3],[8,9]];

console.log(links.join(",").split(","));


var p, temp = {};
var test={};
var result={};

for (var i=links.join(",").split(",").length; i--; ) {
    p = links.join(",").split(",")[i];
    temp[p] = (p in temp) ? temp[p]+1 : 1;
}

for(key in temp){
    if(temp[key]>1){
        test[key]=temp[key];
        console.log("now greater then 1");
      }
}
console.log(test);

for (var index = 0, len = links.length; index < len; index++) {
  //  console.log(links[index]);
  for(key in test){
  console.log(key +"----"+links[index]);
    if(key in links[index]){
        console.log(links[index]);
    }else{
        console.log("in else");
    }
  }
}
console.log(temp);   
var links=[[0,3]、[2,4]、[8,5]、[9,1]、[5,2]、[1,5];
var检查=[[7,6],[1,2],[8,3],[8,9];
log(links.join(“,”).split(“,”);
var p,temp={};
var检验={};
var result={};
对于(var i=links.join(“,”).split(“,”).length;i--;){
p=links.join(“,”).split(“,”[i];
温度[p]=(温度中的p)?温度[p]+1:1;
}
用于(输入温度){
如果(温度[键]>1){
测试[键]=温度[键];
console.log(“现在大于1”);
}
}
控制台日志(测试);
对于(var index=0,len=links.length;index

这是一棵树吗?这不只是一个图吗?或者它是一个图的数据结构,但有一个前提条件,即没有循环,所以你可以忽略代码中的循环?是的,这是一个数据结构类型,但我不认为它是一个图。因为一些节点与其他节点相关,我们需要找到它们。好的,所以你不知道什么是图,你甚至可能不知道什么是树。准确定义您拥有的数据类型。我认为它是定向的(如[1,5]与[5,1]不同),并且没有循环。奇怪的是,世界上不止一棵树。看起来图中可能有许多树没有相互连接。所以,弄清楚你实际上拥有什么,你需要做什么。然后学习解决问题所需的知识。这里没有人会帮你做作业,你甚至不用jquery。将其从标题和标签中删除。这是一个2d数组,但不是人们所期望的,当你说它是一棵树的时候。它实际上是一个表示边的对的列表。