Binary Search Trees
by Kaeden
JavaScript
var node = function (key, val) {
var value = val;
var key = key;
var left = null;
var right = null;
var insert = function (newKey, newVal) {
if (newKey == key) {
return;
}
var newNode = new node(newKey, newVal);
if (newKey < key) {
if (left) {
left.insert(newKey, newVal);
} else {
left = newNode;
}
} else {
if (right) {
right.insert(newKey, newVal);
} else {
right = newNode;
}
}
};
var printInOrder = function () {
if (left) {
left.printInOrder();
}
console.log(value);
if (right) {
right.printInOrder();
}
};
var get = function (searchKey) {
if (key == searchKey) {
return value;
}
var result;
if (searchKey < key) {
if (left && (result = left.get(searchKey))) {
return result;
}
} else {
if (right && (result = right.get(searchKey))) {
return result;
}
}
return null;
};
return {
insert: insert,
getValue: value,
printInOrder: printInOrder,
get: get
};
};
var tree = new node(25, "twenty-five");
tree.insert(17, "seventeen");
tree.insert(19, "nineteen");
tree.insert(27, "twenty-seven");
tree.insert(26, "twenty-six");
tree.insert(26, "twenty-six");
tree.insert(3, "three");
http: //jsfiddle.net/PsfHY/1/
tree.printInOrder();
var result = tree.get(25);
console.log(result);