var tree = function(n, data){ this.lo = null this.hi = null this.value = n this.data = data } tree.prototype.find = function(n){ if (n == this.value) return this if (n < this.value) return this.lo ? this.lo.find(n) : this if (n > this.value) return this.hi ? this.hi.find(n) : this } tree.prototype.add = function(n, data){ var closest = this.find(n) if (n == closest.value) return closest if (n < closest.value) return closest.lo = new tree(n, data) if (n > closest.value) return closest.hi = new tree(n, data) } tree.prototype.toString = function(){ var s = ""; if (this.lo) s += this.lo.toString() s += this.value + "," if (this.hi) s += this.hi.toString() return s }