function KdTree(x, y){
this.left;
this.right;
this.x = x;
this.y = y;
}
KdTree.prototype = {
constructor : KdTree,
insert : function(node){
var curNode = this;
var depth = 1;
while (curNode){
if (depth % 2){
if (this.x > node.x){
if (!curNode.left) {
this.setValue(curNode, node, 1);
curNode = curNode.left;
}
curNode = curNode.left;
}
else{
if (!curNode.right) {
this.setValue(curNode, node, 0);
curNode = curNode.right;
}
curNode = curNode.right;
}
}else{
if(this.y > node.y){
if (!curNode.right) {
this.setValue(curNode, node, 0);
curNode = curNode.right;
}
curNode = curNode.left;
}
else{
if (!curNode.right) {
this.setValue(curNode, node, 0);
curNode = curNode.right;
}
curNode = curNode.right;
}
}
depth = depth + 1;
}
},
setValue: function(curNode, node, leftOrRight) {
if (leftOrRight) curNode.left = node;
else curNode.right = node;
}
}
var kdTree = new KdTree(5, 2);
var node = new KdTree(2, 4);
kdTree.insert(node);
var node = new KdTree(4, 3);
kdTree.insert(node);
var node = new KdTree(6, 4);
kdTree.insert(node);
var node = new KdTree(8, 5);
kdTree.insert(node);
console.log(kdTree);