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] | PostAVL 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