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.