Skip to content

omscse/javascript-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Collection of JavaScript Data Structures

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published