Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

data-structures

chenglou331MIT1.4.2

JavaScript data structures written in CoffeeScript.

data structure, linked list, list, bst, binary search tree, red black tree, tree, graph, edge, queue, map, hash, heap, trie

readme

Data Structures Build Status

Fast, light and hassle-free JavaScript data structures, written in CoffeeScript.

  • (Hash) Map
  • Heap
  • Graph
  • (Doubly) Linked List
  • Queue
  • Self-Balancing Binary Search Tree (Red-Black Tree)
  • Trie

Installation and Usage

Server-side:

Using npm:

npm install data-structures

Then where needed:

var Heap = require('data-structures').Heap;
var heap = new Heap();
heap.add(3);
heap.removeMin();

Alternatively, you can directly use the compiled JavaScript version in the "distribution" folder. It's always in sync with the CoffeeScript one.

Client-side:

Using Bower:

bower install data-structures

Or if you prefer a more traditional approach, Get the whole file here. Either use the development version or the minified production version.

Then put the file in your HTML page,

<script src="path/to/dataStructure/file"></script>
<script>
    var Heap = require("data-structures").Heap;
    var heap = new Heap();
    heap.add(3);
    heap.removeMin();
</script>

(Magical client-side require()) courtesy of Browserify.

Documentation

Wiki page

The wiki page is a formatted version of the documentation in the code.

Roadmap

For Contributors

Install the npm development dependencies:

npm install

Then, with Grunt:

grunt test

Build JavaScript for server-side and browser

Note that if it's a pull request you'd like to submit, ignore this section. The code will be rebuilt after the pull anyways.

Feel free to modify the source code and rebuild it for your own needs:

grunt

This will take care of compiling CoffeeScript into JavaScript and, if needed, bundle them for the browser.

License

MIT.

changelog

1.4.2 (March 4th 2014)

  • Graph's forEachNode's callback now passes you the nodeId as a second param, in addition to the nodeObject.

1.4.1 (January 2nd 2014)

  • All traversals now protect against looping through properties on Object.prototype.

1.4.0 (June 28th 2013)

  • Switched graph's removeNode back to O(E). Issue 4. Internal clean-up.

1.3.5 (June 26th 2013)

  • Reverted tests back to test Coffee source files instead of compiled js.
  • Every file now has a methods/properties overview. Wiki updated.
  • All the documentation is now based on js.

1.3.4 (June 25th 2013)

  • Bower support.

1.3.2 (June 16th 2013)

  • Moved CoffeeScript dependency into development dependency. Compiled js now available. Issue 3.

1.3.1 (May 24th 2013)

  • CoffeScript lint task.
  • Changed indentation from 4 spaces to 2.

1.3.0 (May 21th 2013)

  • New way to include script in browser. Please check README.
  • For contributors: cleaner build process using Grunt.

1.2.0 (May 17th 2013)

  • All the traversal methods now return undefined. Performance boost by avoiding CoffeeScript's accumulated array for returning. Heap's private methods also act this way now. Issue 1.

1.1.3 (May 12th 2013)

  • Browser support through Browserify.

1.1.2 (May 12th 2013)

  • Travis.
  • This file.
  • Initial public release.