cp-data

cp-data is a JavaScript library for some common data structures

cp-data

cp-data is a JavaScript library for some common data structures. Currently this includes a fast Set implementation and a PriorityQueue.

Getting cp-data

Before installing this library you need to install the npm package manager.

To get cp-data from npm, use:

$ npm install cp-data

You can get the latest browser-ready scripts:

Before building this library you need to install the npm package manager.

Check out this project and run this command from the root of the project:

$ make

This will generate cp-data.js and cp-data.min.js in the out/dist directory of the project.

Set Example

var Set = require('cp-data').Set;
 
var s1 = new Set();
 
s1.has(1);
// => false 
 
s1.add(1);
// => true 
 
s1.size();
// => 1 
 
s1.has(1);
// => true 
 
// Addind a key that is already in the set does not change the set. The 
// function returns `false` to indicate nothing changed. 
s1.add(1);
// => false 
 
s1.size();
// => 1 
 
s1.add(2);
s1.size();
// => 2 
 
// We can construct a set from an array 
var s2 = new Set([2, 3, 4]);
 
s2.keys();
// => [2, 3, 4] 
 
// Intersection: 
Set.intersect([s1, s2]).keys();
// => [2] 
 
// Union: 
Set.union([s1, s2]).keys();
// => [1, 2, 3, 4] 
 
// We can also do set intersection / union with arrays: 
Set.intersect([[1, 2, 3], [2, 3, 4]]).keys();
// => [2, 3] 
 
// We can do set intersection / union with more that 2 sets: 
Set.union([s1, s2, ['a', 'b', 'c']]).keys();
// => [1, 2, 3, 4, 'a', 'b', 'c'] 
 
// Lastly, sets preserve the type of the key supplied. Compare the following 2 
// results: 
new Set([1]).keys();
// => [1] 
new Set(['1']).keys();
// => ['1'] 

License

cp-data is licensed under the terms of the MIT License. See the LICENSE file for details.