KdTree

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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • 1. AVL树 AVL树简单来说是带有平衡条件的二叉查找树.传统来说是其每个节点的左子树和右子树的高度最多差1(注...
    fredal阅读 1,851评论 0 4
  • 不管时间多么荒凉 我不再感到孤单。 因为曾经拥有过,拥有过山盟海誓,拥有过你。所以我能够怀抱满满的记忆。度过余下的...
    咸魚阅读 163评论 0 0