Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save asukakenji/96dbe9bfa969013474c6fb1fa413d3f2 to your computer and use it in GitHub Desktop.
Save asukakenji/96dbe9bfa969013474c6fb1fa413d3f2 to your computer and use it in GitHub Desktop.
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