1.0.7 • Published 2 years ago

@javascript-data-structures/collection v1.0.7

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Collection of Data Structures implemented in JavaScript

Priority Queue

Trie

Priority Queue

Complexity

Heap methodTime complexitySpace complexityMethod
Construct a HeapO(N)O(N)heapify
Insert an elementO(logN)O(1)add
Get the top elementO(1)O(1)peak
Delete the top elementO(logN)O(1)poll
Get the size of a HeapO(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"));
1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago