Data Structures & Algorithms

In JavaScript, for web development.

Tree is in my opinion the most important for web developers.

A data structure is not the same as a data type.

linear data structures vs non-linear data structures

Design & Analysis

Dynamic Programming

Greedy Algorithms

Divide & Conquer Algorithms

Reduction Algorithms

Backtracking Algorithms

Amortized Analysis

Stacks

A stack can be implemented using an array.

A stack is first in, last out (LIFO).

The INSERT operation on a stack is often called PUSH, and the DELETE operation is often called POP.

Queues

A stack can be implemented using an array.

A queue is first in, first out (FIFO).

The INSERT operation on a queue is called ENQUEUE, and the DELETE operation is often called DEQUEUE.

A queue has a head and a tail.

Priority Queues / Heaps / Binary Heaps

Linked Lists

Doubly Linked Lists

Hash Tables / Dictionaries / Maps

Why three terms for the same thing?

Weak Maps

Sets

Weak Sets

Objects

Array

Strings

Trees

rooted vs unrooted trees; bounded vs unbounded branching

Pre-order Traversal

In-order Traversal

Post-order Traversal

Breadth-first Search

Depth-first Search

Binary Search Trees

You can also use a BST as both a dictionary and a priority queue.

Red-Black Trees

AVL Trees

B-Trees

B+-Trees

Graphs

The two most common computational representations of graphs are adjacency lists and adjacency matrices.