Package Exports
- @javascript-data-structures/collection
- @javascript-data-structures/collection/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@javascript-data-structures/collection) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Collection of Data Structures implemented in JavaScript
Priority Queue
Complexity
Heap method | Time complexity | Space complexity | Method |
---|---|---|---|
Construct a Heap | O(N) | O(N) | heapify |
Insert an element | O(logN) | O(1) | add |
Get the top element | O(1) | O(1) | peak |
Delete the top element | O(logN) | O(1) | poll |
Get the size of a Heap | O(1) | O(1) | size |
N is the number of elements in the heap.
Usage
npm install @javascript-data-structures/collection
const { PriorityQueue } = require('@javascript-data-structures/collection');
//By Default creates a max heap
let maxHeap = new PriorityQueue();
maxHeap.add(3);
maxHeap.add(5);
maxHeap.add(2);
console.log(maxHeap);
console.log(maxHeap.toString());
console.log(maxHeap.size);
//Min Heap using Comparator Function
let pq = new PriorityQueue((a,b)=>b-a);
pq.heapify([5,4,3,2,1]);
console.log(pq.peak());
//Max Heap using Comparator Function
pq = new PriorityQueue((a,b)=>a-b);
pq.heapify([1,2,3,4,5]);
pq.add(45);
console.log(pq);
//More Ways to prioritize
let priorityQueue = new PriorityQueue((pointA, pointB)=>pointB[2]-pointA[2]);
Trie
Methods
insert(word) - inserts given word into Trie
search(word) - search for exact word in the Trie. Returns true if exists, false otherwise.
startsWith(prefix) - checks if Trie has words satarting with the given prefix. Returns true if exists, false otherwise.
findAllMatches(prefix) - Retuns all the words matching with the prefix in the Trie.
Usage
npm install @javascript-data-structures/collection
const { Trie } = require('@javascript-data-structures/collection');
let trie = new Trie();
trie.insert("apple");
trie.insert("app");
trie.insert("apps");
trie.insert("ball");
trie.insert("b");
console.log(trie.search("ba"));
console.log(trie.startsWith("ball"));
console.log(trie.findAllMatches("app"));