/js-algorithms

Javascript versions of classic software development algorithms

Primary LanguageJavaScript

Build Status Dependencies devDependencies NPM version

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.

Problems

Algorithms Solution
Binary Heap click
Binary Search Tree click
Depth First Search click
Fisher–Yates shuffle click
Max Heap click
Mergesort algorithm click
Min Heap click
Queue click
Quicksort algorithm click
Stack click
Tower of Hanoi click
Trie click
Basic string compression counting repeated characters click
Are two strings permutations of each other click
Is a linked list a palindrome click
Smallest Enclosing Circle click

Description

Classic data structures and algorithms (with tests!) written in JavaScript

  • Singly Linked List
  • Min/Max Binary Heap
  • Trie (With Pre-Order Traversal Sorting)
  • 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

Usage

If you want access to these data structures in your project, include this package.

> var 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] },
  algorithms: {
    sorting: {
      quickSort: [Function]
      mergeSort: [Function]
    },
    shuffle: [Function],
    enclosingCircle: [Function]
  }}