Javascript versions of classic software development algorithms
npm install js-algorithms
JS-Algorithms
=============
In case you want to prepare yourself for a job interview, or just need access to common data structures.
I've documented the process of creating this code here.
| Algorithm | Solution |
|--------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| Binary Heap | code |
| Binary Search Tree | code |
| Depth First Search | code |
| Fisher–Yates shuffle | code |
| Max Heap | code |
| Mergesort algorithm | code |
| Min Heap | code |
| Queue | code |
| Quicksort algorithm | code |
| Stack | code |
| Tower of Hanoi | code |
| Trie | code |
| Suffix Tree |code |
| Basic string compression counting repeated characters | code |
| Are two strings permutations of each other | code |
| Is a linked list a palindrome | code |
| Smallest Enclosing Circle | code |
Classic data structures and algorithms (with tests!) written in JavaScript
* Singly Linked List
* Min/Max Binary Heap
* Trie (With Pre-Order Traversal Sorting)
* Suffix Tree
* Stack (push, pop, peek, and isEmpty)
* Queue (add, remove, peek, isEmpty)
* Binary Search Tree
* Hash Table
As well as the following algorithms:
* Breadth First Search
* Depth First Search
* Binary Search
* Merge Sort
* Quick Sort
* Shuffle (Fisher–Yates)
* Smallest Enclosing Circle
If you want access to these data structures in your project, include this package.
``shell``
> const algorithms: = require('js-algorithms')
> algorithms
{
dataStructures: {
binaryHeap: [Function],
binarySearchTree: [Function: bst],
linkedList: [Function],
maxHeap: [Function],
minHeap: [Function],
queue: [Function],
stack: [Function],
stackQueue: [Function],
trie: [Function],
suffixTree: [Function] },
algorithms: {
sorting: {
quickSort: [Function]
mergeSort: [Function]
},
shuffle: [Function],
enclosingCircle: [Function]
}}