A B-Tree in JavaScript
13 Jan 2015B-Trees are souped-up version of Binary Search Trees. These data structures allow for more than 2 children per node, which keeps the tree’s depth more condensed & speeds up the time to traverse the tree.
Binary Search Trees have a lookup time complexity of log(n) base 2, where n is the number of stored items. B-Trees get a higher base value, defined as the ‘order’ of the tree, making for quicker lookups.
Here’s the basics of a B-Tree in JavaScript, with accompanying unit tests. Written by Andy Coenen and myself.
It’s got some handy methods like:
this.insert(value)– Insert the value into this, at the appropriate place, and handle rebalancing the tree.this.print()– Print out an array of values of all nodes, depth first, including and descending fromthis.this.multiInsert(val1, val2, val3, val4...)– Insert multiple values, instead of invokingthis.insert()manually for each value. Takes multiple arguments, as many as needed.this.printParents()– Likethis.print(), but prints outthis.parent.valuesof all nodes including and descending fromthis.
And here’s a super useful visualization of how B-Trees work.