This repository covers the implementation of the classical algorithms and data structures in JavaScript.
-
Algorithmic toolbox to avoid getting stuck while coding.
-
Explains data structures similarities and differences.
-
Algorithm analysis fundamentals (Big O notation, Time/Space complexity) and examples.
-
Time/space complexity cheatsheet.
We are covering the following data structures.
-
Trees: data nodes has zero or more adjacent nodes a.k.a. children. Each node can only have one parent node otherwise is a graph not a tree. Code | Post
-
Binary Trees: same as tree but only can have two children at most. Code | Post
-
Binary Search Trees (BST): same as binary tree, but the nodes value keep this order
left < parent < rigth
. Code] | Post -
AVL Trees: Self-balanced BST to maximize look up time. Code | Post
-
Red-Black Trees: Self-balanced BST more loose than AVL to maximize insertion speed. Code
-
-
Maps: key-value store.
-
Graphs: data nodes that can have a connection or edge to zero or more adjacent nodes. Unlike trees, nodes can have multiple parents, loops. Code | Post