container-avltree
AvlTree implementation in Javascript
To manage a pool of sorted elements. Complexity in O(log2(n)) for addition and removal.
List of methods and their time complexity
Method | Time Complexity |
---|---|
add | O(log2(n)) |
removeByReference | O(log2(n)) |
getCount | O(1) |
popSmallest | O(log2(n)) |
popGreatest | O(log2(n)) |
getSmallestAbove | O(log2(n)) |
getGreatestBelow | O(log2(n)) |
forEach | O(n * p) |
forEachReverse | O(n * p) |
toArray | O(n) |
clear | O(n) |
Where:
n
is the number of elements in the treep
is the complexity of the processing function.
API usage
To instantiate a new tree:
// In this example, myTree will hold elements sorted by zIndex{return azIndex - bzIndex;}var myTree = myComparisonFunction;
To add an element:
var myObjectReference = myTree; // O(log2(n))
To remove an element:
myTree; // O(log2(n))
To apply a treatment on all the elements in sorted ordered:
myTree;
To apply a treatment on all the elements in opposite sorted ordered:
myTree;
To get the smallest element greater or equal to a given object:
var myObjectAbove = myTree; // O(log2(n))
To get the greatest element smaller or equal to a given object:
var myObjectBelow = myTree; // O(log2(n))
To convert into an array:
var myArray = myTree; // O(n)
To get the number of elements in the tree:
var nbElements = myTreelength;