Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Data Structures and Algorithms Reading List

Data Structures and Algorithms Reading List

Abstract Data Types / ADTs

Wikipedia: Abstract data type - Wikipedia

Textbooks:

List / Vector

Wikipedia: List (abstract data type) - Wikipedia

Textbooks:

Stack

Wikipedia: Stack (abstract data type) - Wikipedia

Textbooks:

Queue

Wikipedia: Queue (abstract data type) - Wikipedia

Textbooks:

Double-Ended Queue / Deque

Wikipedia: Double-ended queue - Wikipedia

Textbooks:

Priority Queue

Wikipedia: Priority queue - Wikipedia

Textbooks:

Double-Ended Priority Queue / DEPQ

Wikipedia: Double-ended priority queue - Wikipedia

Textbooks:

Set

Wikipedia: Set (abstract data type) - Wikipedia

Textbooks:

Multiset

Wikipedia: Set (abstract data type) - Wikipedia > Multiset

Textbooks:

Disjoint-Set

Wikipedia: Disjoint-set data structure - Wikipedia

Textbooks:

Map / Dictionary / Associative Array

Wikipedia: Associative array - Wikipedia

Textbooks:

Multimap

Wikipedia: Multimap - Wikipedia

Textbooks:


Data Structures

Wikipedia: Data structure - Wikipedia

Textbooks:

Array

Wikipedia: Array data structure - Wikipedia

Textbooks:

Array List / Dynamic Array

Wikipedia: Dynamic array - Wikipedia

Textbooks:

Hash Table

Wikipedia: Hash table - Wikipedia

Textbooks:

Linked List

Wikipedia: Linked list - Wikipedia

Textbooks:

Singly-Linked List

Wikipedia: Linked list - Wikipedia > Singly linked list

Textbooks:

Doubly-Linked List

Wikipedia: Linked list - Wikipedia > Doubly linked list

Textbooks:

Circular Linked List

Wikipedia: Linked list - Wikipedia > Circular linked list

Textbooks:

Skip List

Wikipedia: Skip list - Wikipedia

Textbooks:

Deterministic Skip List

Textbooks:

Tree

Wikipedia: Tree (data structure) - Wikipedia

Textbooks:

Merkle Tree / Hash Tree (1979)

Wikipedia: Merkle tree - Wikipedia

Textbooks:

Fenwick Tree / Binary Indexed Tree (1989, 1992, 1994)

Wikipedia: Fenwick tree - Wikipedia

Textbooks:

Tree > Heap (1964)

Wikipedia: Heap (data structure) - Wikipedia

Textbooks:

Binary Heap (1964)

Wikipedia: Binary heap - Wikipedia

Textbooks:

d-Heap / d-ary Heap (1975)

Wikipedia: d-ary heap - Wikipedia

Textbooks:

Leftist Heap / Leftist Tree (1972)

Wikipedia: Leftist tree - Wikipedia

Textbooks:

Skew Heap / Self-Adjusting Heap (1986)

Wikipedia: Skew heap - Wikipedia

Textbooks:

Binomial Heap / Binomial Queue (1978)

Wikipedia: Binomial heap - Wikipedia

Textbooks:

Fibonacci Heap (1984)

Wikipedia: Fibonacci heap - Wikipedia

Textbooks:

Pairing Heap (1986)

Wikipedia: Pairing heap - Wikipedia

Textbooks:

Interval Heap

Wikipedia: Double-ended priority queue - Wikipedia > Interval heaps

Textbooks:

Twin Heap

Wikipedia: Double-ended priority queue - Wikipedia > Total correspondence

Textbooks:

Min-Max Heap

Wikipedia: Min-max heap - Wikipedia

Textbooks:

Deap

Textbooks:

Diamond Deque

Textbooks:

van Emde Boas Tree / vEB Tree (1975)

Wikipedia: Van Emde Boas tree - Wikipedia

Textbook:

Tree > Search Tree > Binary Search Tree / BST (1960)

Wikipedia: Binary search tree - Wikipedia

Textbooks:

AVL Tree (1962)

Wikipedia: AVL tree - Wikipedia

Textbooks:

Red-Black Tree (1972)

Wikipedia: Red–black tree - Wikipedia

Textbooks:

Left-Leaning Red-Black Tree / LLRB Tree (2008)

Wikipedia: Left-leaning red–black tree - Wikipedia

Textbooks:

Splay Tree (1985)

Wikipedia: Splay tree - Wikipedia

Textbooks:

Scapegoat Tree (1993)

Wikipedia: Scapegoat tree - Wikipedia

Textbooks:

AA Tree

Wikipedia: AA tree - Wikipedia

Textbooks:

Treap (TRee + hEAP) (1989)

Wikipedia: Treap - Wikipedia

Textbooks:

Tree > Search Tree > B-Tree Family

2-3 Tree

Wikipedia: 2–3 tree - Wikipedia

Textbooks:

2-3-4 Tree / 2-4 Tree

Wikipedia: 2–3–4 tree - Wikipedia

Textbooks:

B-Tree

Wikipedia: B-tree - Wikipedia

Textbooks:

B+ Tree

Wikipedia: B+ tree - Wikipedia

Textbooks:

B* Tree

Wikipedia: B-tree - Wikipedia > Variants

Textbooks:

Bx Tree

Wikipedia: Bx-tree - Wikipedia

Textbooks:

UB-Tree

Wikipedia: UB-tree - Wikipedia

Textbooks:

(a,b)-Tree

Wikipedia: (a,b)-tree - Wikipedia

Textbooks:

Dancing Tree

Wikipedia: Dancing tree - Wikipedia

Textbooks:

HTree

Wikipedia: HTree - Wikipedia

Textbooks:

Tree > Search Tree > k-d Tree Family

k-d Tree

Wikipedia: k-d tree - Wikipedia

Textbooks:

Implicit k-d Tree

Wikipedia: Implicit k-d tree - Wikipedia

Textbooks:

min/max k-d Tree

Wikipedia: min/max kd-tree - Wikipedia

Textbooks:

Quadtree

Wikipedia: Quadtree - Wikipedia

Textbooks:

Region Quadtree

Wikipedia: Quadtree - Wikipedia > Region quadtree

Textbooks:

Point Quadtree

Wikipedia: Quadtree - Wikipedia > Point quadtree

Textbooks:

Point Region Quadtree / PR Quadtree

Wikipedia: Quadtree - Wikipedia > Point-region (PR) quadtree

Textbooks:

Edge Quadtree

Wikipedia: Quadtree - Wikipedia > Edge quadtree

Textbooks:

Polygonal Map Quadtree / PM Quadtree

Wikipedia: Quadtree - Wikipedia > Polygonal map (PM) quadtree

Textbooks:

Octtree

Wikipedia: Octree - Wikipedia

Textbooks:

R-Tree

Wikipedia: R-tree - Wikipedia

Textbooks:

G-Tree

Textbooks:

Tree > Trie (1959)

Wikipedia: Trie - Wikipedia

Textbooks:

Suffix Tree

Wikipedia: Suffix tree - Wikipedia

Textbooks:

Radix Tree

Wikipedia: Radix tree - Wikipedia

Textbooks:

Hash Trie / Hash Tree

Wikipedia: Hash tree (persistent data structure) - Wikipedia

Textbooks:

X-Fast Trie

Wikipedia: X-fast trie - Wikipedia

Textbooks:

Y-Fast Trie

Wikipedia: Y-fast trie - Wikipedia

Textbooks:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment