Every data structure actually implemented and proved somewhere in this repo, organized by what it’s for, with the key operations and their cost. This is a map into deep content, not a re-explanation — see also the base data-structure catalog (arrays, lists, measured memory per element) and Types of Trees (the tree-shaped taxonomy). For the general problem-solving strategies these structures serve, see 🐬 Paradigms and 🐬 Techniques; for a single named procedure, see 🐬 Algorithms.

Linear

StructureSupportsNote
Array index, insert/eraseData Structure Catalog
Linked list (singly/doubly/circular) insert/erase at a known node, indexData Structure Catalog
Stack / queue / deque push/pop at the relevant end(s)Data Structure Catalog
Monotonic stack / deque amortized nearest-greater/smaller, sliding window min/maxMonotonic Stack, Two Pointers

Hash-based

StructureSupportsNote
Hash table / set (unordered_map/gp_hash_table) expected insert/find/eraseSTL Containers and Hashing
Anti-hash-test-safe hashing (splitmix64, random seed)same, but adversary-safeSTL Containers and Hashing

Heaps

StructureSupportsNote
Binary heap (priority_queue) push/pop-min, topHeaps
Leftist / pairing / skew heap (amortized for pairing/skew) push/pop/mergeHeaps
Radix heap push, amortized pop-min for bounded-range weightsHeaps
Priority-queue-undo push/pop with rollback to any earlier stateHeaps

Union-Find

StructureSupportsNote
DSU (union by size/rank + path compression) amortized union/findDisjoint Set Union
Weighted DSUunion/find plus a potential/offset per elementDisjoint Set Union
DSU with rollbackunion/find + undo of the last unionDisjoint Set Union
DSU on tree / small-to-largemerges child sets in total across the whole treeSmall to Large

Range-query structures

StructureSupportsNote
Sparse table idempotent range query (min/max/gcd/and/or), no updatesSparse Table
Disjoint sparse table range query for any associative (non-idempotent) op, no updatesSparse Table
Sqrt tree query, update for associative opsSparse Table
Fenwick / BIT (+ range-update variant) point update / prefix query (and the reverse)Fenwick Tree
Segment tree point/range update, range querySegment Tree
Lazy segment tree range update, range queryLazy Propagation
Persistent segment tree update creating a new version, query any versionDynamic and Persistent Segment Trees
Segment tree beats amortized range chmin/chmax + range sumSegment Tree Beats
Li Chao tree insert a line, query the envelope at a pointLi Chao and Kinetic Segment Tree
Kinetic segment treemaintains a changing argmin/argmax under moving linear functionsLi Chao and Kinetic Segment Tree
Wavelet tree / persistent structure for order statistics range -th smallest, range count in Range Order Statistics
Ordered set / PBDS tree order-of-key, find-by-orderOrdered Set and PBDS
Chtholly tree (ODT) amortized range assign on randomized dataChtholly Tree
Van Emde Boas tree / fast bitset-based sets predecessor/successorFast Set and Exotic Structures

Balanced search trees

StructureSupportsNote
Treap expected insert/erase/split/merge, implicit-key variant for order statisticsTreaps and Balanced BSTs
Splay tree amortized access/insert/erase, self-adjustingTreaps and Balanced BSTs
Implicit treap / rope range reverse/shift on a sequenceTreaps and Balanced BSTs

Tries

StructureSupportsNote
String trie / Aho–Corasick build, multi-pattern matchingTrie and Aho–Corasick
Binary (bitwise) trie insert/erase/max-XOR queryBinary Trie
Palindromic tree (Eertree) build, one node per distinct palindromic substringEertree

Dynamic and advanced trees

StructureSupportsNote
Link-cut tree amortized link/cut/path-query on a dynamic forestLink-Cut Tree
Top tree link/cut + arbitrary path and subtree aggregationTop Trees
Euler tour tree amortized link/cut + subtree aggregates on a dynamic forestEuler Tour Tree
Kruskal reconstruction tree “max edge on path ” via LCA, built onceKruskal Reconstruction Tree
Centroid tree depth, backbone for path-counting divide and conquerCentroid Decomposition
Virtual (auxiliary) tree total DP restricted to marked verticesVirtual Tree
Heavy-light skeleton per chain hop, pairs with a segment tree for path queriesHeavy-Light Decomposition
Persistent segment tree / treap / trieany of the above rebuilt so updates create new nodesPersistence

String structures

StructureSupportsNote
Suffix array (+ LCP array) or (SA-IS) build, binary-searchable substringsSuffix Array
Suffix automaton states, every distinct substring as one pathSuffix Automaton
Suffix treecompressed trie of all suffixes, via Ukkonen’sSuffix Tree

Spatial

StructureSupportsNote
K-d tree or -ish range/nearest-neighbour queries in low dimensionsKD-Tree and Spatial Structures