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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,912評論 0 33
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,673評論 18 399
  • 一. Java基礎部分.................................................
    wy_sure閱讀 4,011評論 0 11
  • 1. AVL樹 AVL樹簡單來說是帶有平衡條件的二叉查找樹.傳統(tǒng)來說是其每個節(jié)點的左子樹和右子樹的高度最多差1(注...
    fredal閱讀 1,897評論 0 4
  • 不管時間多么荒涼 我不再感到孤單。 因為曾經擁有過,擁有過山盟海誓,擁有過你。所以我能夠懷抱滿滿的記憶。度過余下的...
    咸魚閱讀 172評論 0 0

友情鏈接更多精彩內容