Skip to content
/ tree-set Public

A JavaScript emulator of the TreeSet Java class

License

Notifications You must be signed in to change notification settings

mljs/tree-set

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tree-set

NPM version build status David deps npm download

A JavaScript emulator of the TreeSet Java class

Installation

$ npm install ml-tree-set

Documentation

TreeSet allows to create a sorted array of objects by adding each new element in order, according with the comparator function. TreeSet does not really implements a tree to maintain the order. It just add the elements in the correct place in the array. Nevertheless adding, removing or finding an element is guaranteed to be performed in log(n).

Unlike the other binary-tree implementations available in npm, this one allows repeated keys.

###constructor(comparator):

Create a new TreeSet object. The comparator gives the order to the set. By default it is the natural comparator

function(a, b){ return a - b };

add(element):

Add an element to the sorted list

size():

Return the number of elements in the set

last():

Return the last element of the sorted list

first():

Return the first element of the sorted list

pollLast():

Return and removes the last element of the sorted list

pollFirst():

Return and removes the first element of the sorted list

binarySearch(element):

Performs a binary search of value in array

##Example

 const myList = new TreeSet(function( a, b){ return a.index - b.index; });
 myList.add({index:0,value:"a"});
 myList.add({index:3,value:"d"});
 myList.add({index:2,value:"c"});
 myList.pollFirst();
 myList.add({index:1,value:"b"});
 //The myList.elements should be: [{index:1,value:"b"},{index:2,value:"c"},{index:3,value:"d"}]);
 //myList.size() should be equal to 3;

License

MIT

About

A JavaScript emulator of the TreeSet Java class

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published