ICollections
“Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” — Linus Torvalds
This project has javascript implementation for some common data structures like:
- Linked List
- Queue
- Priority Queue
- Stack
- Maps
- Hash Table
- Binary Search Tree
- Set
Install
$ npm i icollections
Usage
Binary Search Tree
; var bst = ;console; // 14 bst;bst;console; // trueconsole; // trueconsole; // false
Your actual tree state:
10
/
5
bst;
Your actual tree state:
10
/ \
5 13
console; // true bst;bst;bst;bst;
Your actual tree state:
10
/ \
5 13
/ / \
2 12 133
/
42
bst)
Your actual tree state:
10
/ \
13 5
/ \ \
133 12 2
\
42
console; // 2console; // 133console; //[2,5,10,12,13,42,133]console; //[10,5,2,13,12,133,42]console; //[2,5,12,42,133,13,10]console; //[10, 5, 13, 2, 12, 133, 42]console; // 0console; // 3console; // 3console; // 0console; //[10, 5, 13, 2, 12, 133, 42]
Algorithm | Average | Worst Case |
---|---|---|
Space | O(n) | O(n) |
Search | O(log n) | O(n) |
Insert | O(log n) | O(n) |
Delete | O(log n) | O(n) |
Linked Lists
; var linked = ;console; // 0 linked;linked;linked;console; // 3 linked;console; // 7console; // 1 linked; console; // -1console; // -1 linked;linked;console; // 3console; // -1
Algorithm | Average | Worst Case |
---|---|---|
Space | O(n) | O(n) |
Search | O(n) | O(n) |
Insert | O(1) | O(1) |
Delete | O(1) | O(1) |
Stack
; let stack = ;console; // 0 stack;stack;stack;console; // 3console; // 7 stack;console; // 2console; // 5
Algorithm | Average | Worst Case |
---|---|---|
Space | O(n) | O(n) |
Search | O(n) | O(n) |
Insert | O(1) | O(1) |
Delete | O(1) | O(1) |
Queue
; const queue = ;console; // 0 queue;queue;queue; console; // falseconsole; // 3console; // 'a'console; // 'a'console; // 2console; // 'b'
Algorithm | Average | Worst Case |
---|---|---|
Space | O(n) | O(n) |
Search | O(n) | O(n) |
Insert | O(1) | O(1) |
Delete | O(1) | O(1) |
Priority Queue
; const queue = ;console; // 0 queue;queue;queue;queue; console; // ['FIRST ONE, WINNER', 1]) queue; console; // ['Almost', 2]
Algorithm | Average | Worst Case |
---|---|---|
Space | O(n) | O(n) |
Search | O(n) | O(n) |
Insert | O(1) | O(1) |
Delete | O(1) | O(1) |
Set
; const set = ; console // 0 set; set; console // 2 console
Map
; var map = ;console; // 0 map;map;map;map; console; // 4 let obj = name: 'languange' ;map; console; // trueconsole; // trueconsole; // 'JavaScript'console; // trueconsole; // 2 console; // [2,10,2,1] map;console; // false mapclear;console; // 0
Hash Tables
; var hashTable = 14;console; // 14 hashTable; console; // 'person' hashTable;; // undefined
Algorithm | Average | Worst Case |
---|---|---|
Space | O(n) | O(n) |
Search | O(1) | O(n) |
Insert | O(1) | O(n) |
Delete | O(1) | O(n) |
Contributing
$ git clone https://github.com/assuncaocharles/javascript_DataStructure
cd javascript_DataStructure
npm i
Running test
npm run test
To do
- Graph
- Binary Heap