@javascript-data-structures/collection

1.0.7 • Public • Published

Collection of Data Structures implemented in JavaScript

Priority Queue

Trie

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"));

Package Sidebar

Install

npm i @javascript-data-structures/collection

Weekly Downloads

1

Version

1.0.7

License

ISC

Unpacked Size

9.18 kB

Total Files

5

Last publish

Collaborators

  • omscse