Javascript 在jquery中从二维数组创建树
我们正在尝试从2d数组创建一棵树,并希望检查该树中是否存在给定的节点 比如说 假设我们有这些数组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) 根据我
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数组,但不是人们所期望的,当你说它是一棵树的时候。它实际上是一个表示边的对的列表。