Self-balancing binary search tree.
Install
npm i avl-binary-tree
// or
yarn add avl-binary-tree
API
new AVLTree(options:object):AVLTree
- Constructor.
Options
comparator:function
- [optional] Compare two values.path:string
- [optional] - When value in tree is object use parampath
to define keys path e.g.'foo.bar'
. If it use become default value to all paths in methods. Can be overwrite in method param.
Comparator
Default compare function
{ return a < b}
Methods
insert(key:any)
- Insert value to tree.insertArray(key:array)
- Insert array to tree.getHeight():number
- Return height of tree.getMinValue():any
- Return the smallest value of tree. Depends from comparator. If value of left root is smaller than right root value.getMaxValue():any
- Return the biggest value of tree. Depends from comparator. If value of left root is smaller than right root value.find(value:any, [path:string]):boolean
- Return true when value was found, false if not. When value in tree is object use parampath
to define key's path e.g.'foo.bar'
.delete(value:any, [path:string])
- Delete root with input value.path
works similar to functionsfind
.
Examples
;const tree =
Comparator
const tree = a < b
Methods
insert(key:any)
- Insert value to tree
treetree
insertArray(key:array)
- Insert array to tree.
const a = 1 2tree
getHeight():number
- Return height of tree
tree
getMinValue():any
- Return the smallest value of tree. Depends from comparator. If value of left root is smaller than right root value.
tree
getMaxValue():any
- Return the biggest value of tree. Depends from comparator. If value of left root is smaller than right root value.
tree
find(value:any, [path:string]):boolean
- Return true when value was found, false if not. When value in tree is object use parampath
to define keys path e.g.'foo.bar'
.
tree
delete(value:any, [path:string])
- Delete root with input value.path
works similar to functionsfind
.
tree