Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/keyvanakbary/eter
Lightweight collections for JavaScript
https://github.com/keyvanakbary/eter
collections data-structures javascript typescript
Last synced: about 1 month ago
JSON representation
Lightweight collections for JavaScript
- Host: GitHub
- URL: https://github.com/keyvanakbary/eter
- Owner: keyvanakbary
- License: mit
- Created: 2014-08-17T18:31:17.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-12-13T15:25:03.000Z (about 9 years ago)
- Last Synced: 2024-11-04T16:05:30.220Z (about 2 months ago)
- Topics: collections, data-structures, javascript, typescript
- Language: TypeScript
- Homepage:
- Size: 39.1 KB
- Stars: 16
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Eter
[![Build Status](https://secure.travis-ci.org/keyvanakbary/eter.svg?branch=master)](http://travis-ci.org/keyvanakbary/eter)
*Éter* is a conglomerate of lightweight collections for JavaScript running on [node](http://nodejs.org/) and browser.
## Usage
For node, [install the package](https://www.npmjs.org/package/eter) and include it```js
var eter = require('eter');
```For the browser, just include the modules you want. You could use [Bower](http://bower.io/) to install the package
bower install eter --save
And include the script
```html
```
## Types
If you use [TypeScript](http://www.typescriptlang.org/), _typings_ are included```typescript
import {Stack} from 'eter';let s: Stack = new Stack();
```## Collections
### Stack
A [Stack](http://en.wikipedia.org/wiki/Stack_(abstract_data_type)) is a [Last-In-First-Out (LIFO)](http://en.wikipedia.org/wiki/LIFO_(computing)) data structure.```js
var s = new eter.Stack();s.push(1);
s.push(2);
s.pop();//2
s.pop();//1
s.isEmpty();//true
s.pop();//Error "Empty stack"
```### Queue
A [Queue](http://en.wikipedia.org/wiki/Queue_(abstract_data_type)) is a [First-In-First-Out (FIFO)](http://en.wikipedia.org/wiki/FIFO_(computing)) data structure.```js
var q = new eter.Queue();q.enqueue(1);
q.enqueue(2);
q.dequeue();//1
q.dequeue();//2
q.isEmpty();//true
q.dequeue();//Error "Empty queue"
```### LinkedList
A [Linked List](http://www.wikiwand.com/en/Linked_list) is a data structure consisting of a group of nodes which together represent a sequence.```js
var l = new eter.LinkedList();l.add(1);
l.get(0);//1
l.remove(0);
l.isEmpty();//true
l.get(0);//Error "Index 0 out of bounds"
```### Trie
A [Trie](http://en.wikipedia.org/wiki/Trie) is an ordered tree data structure that is used to store a dynamic set or associative array where the keys are usually strings.```js
var t = new eter.Trie();t.insert('one');
t.insert('oh');
t.insert('on');
t.contains('one');//true
t.insert('foo');
t.remove('foo');
t.contains('foo');//false
```### Hash Map
A [Hash Map](http://en.wikipedia.org/wiki/Hash_table) is a data structure used to implement an associative array, a structure that can map keys to values.```js
var m = new eter.HashMap();m.put('key', 'value');
m.get('key');//value
m.contains('key');//true
m.remove('key');
m.contains('key');//false
```### Binary Tree
A [Binary Tree](https://en.wikipedia.org/wiki/Binary_tree) is a data structure used for logarithmic search access.```js
var t = new eter.BinaryTree();t.insert(10, 'value');
t.get(10);//value
t.remove(10);
t.get(10);//null
```