https://github.com/cschen1205/js-redblacktree
Package provides javascript implementation of red black tree
https://github.com/cschen1205/js-redblacktree
javascript red-black-tree symbol-table
Last synced: 25 days ago
JSON representation
Package provides javascript implementation of red black tree
- Host: GitHub
- URL: https://github.com/cschen1205/js-redblacktree
- Owner: cschen1205
- License: mit
- Created: 2017-05-26T02:26:21.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-05-31T02:03:20.000Z (over 8 years ago)
- Last Synced: 2025-01-18T07:38:57.629Z (9 months ago)
- Topics: javascript, red-black-tree, symbol-table
- Language: JavaScript
- Size: 15.6 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# js-redblacktree
Package provides javascript implementation of red black tree. The api of the red black tree is designed so that it matches with the api of the Java counterpart SortedMap api.[](https://travis-ci.org/cschen1205/js-redblacktree) [](https://coveralls.io/github/cschen1205/js-redblacktree?branch=master)
# Features
* Balanced Search Tree with Left Leaning Red Black Tree
* Customizable comparer function for keys# Install
Run the following npm command to install
```bash
npm install js-redblacktree
```# Usage
To sort an array "a" using any of the sorting algorithms:
```javascript
var jsrbtree = require("js-redblacktree");var bst = new jsrbtree.RedBlackTree();
bst.put(2, 2.4);
bst.put(4, 3.2);
bst.put(5, 3.4);
bst.put(6, 3.4);
bst.put(6, 5.4);console.log(bst.get(2)); // display 2.4
console.log(bst.get(6)); // display 5.4
console.log(bst.containsKey(6)); // display trueconsole.log(bst.size()); // display 4;
console.log(bst.isEmpty()); // display falsebst.delete(6);
console.log(bst.size()); // display 3
console.log(bst.containsKey(6)); // display false;
console.log(bst.get(6)); // display undefined// print out sorted keys
var keys = bst.keySet();
for(var i = 1; i < keys.length; ++i) {
console.log(keys[i]);
}console.log(bst.minKey());
console.log(bst.maxKey());```
If you are handling key which requires custom comparer, you can do so in the constructor:
```javascript
var jsrbtree = require("js-redblacktree");var compare = function(a1, a2){
return a1 - a2;
};var bst = new jsrbtree.RedBlackTree(compare);
```