data-structures
Using repo for organization of data structure knowledge and use cases
This list is from wikipedia: https://en.wikipedia.org/wiki/List_of_data_structures
Data Types
Primitive types
- Boolean, true or false.
- Character
- Floating-point, single-precision real number values.
- Double, a wider floating-point size.
- Integer, integral or fixed-precision values.
- String, a sequence of characters.
- Reference (also called a pointer or handle), a small value referring to another object's address in memory, possibly a much larger one.
- Enumerated type, a small set of uniquely named values.
Composite types or Non-primitive type
- Array
- Record (also called tuple or structure)
- Union
- Tagged union (also called variant, variant record, discriminated union, or disjoint union)
Abstract data types
- Container
- List
- Associative array
- Multimap
- Set
- Multiset (Bag)
- Stack
- Queue
- Double-ended queue
- Priority queue
- Tree
- Graph
Linear data structures
Arrays
- Array
- Bit array
- Bit field
- Bitboard
- Bitmap
- Circular buffer
- Control table
- Image
- Dope vector
- Dynamic array
- Gap buffer
- Hashed array tree
- Heightmap
- Lookup table
- Matrix
- Parallel array
- Sorted array
- Sparse matrix
- Iliffe vector
- Variable-length array
Types of Lists
- Doubly linked list
- Array list
- Linked list
- Self-organizing list
- Skip list
- Unrolled linked list
- VList
- Conc-Tree list
- Xor linked list
- Zipper
- Doubly connected edge list also know has half-edge
- Difference list
- Free list
Trees
- Binary trees
- AA tree
- AVL tree
- Binary search tree
- Binary tree
- Cartesian tree
- Left-child right-sibling binary tree
- Order statistic tree
- Pagoda
- Randomized binary search tree
- Red–black tree
- Rope
- Scapegoat tree
- Self-balancing binary search tree
- Splay tree
- T-tree
- Tango tree
- Threaded binary tree
- Top tree
- Treap
- WAVL tree
- Weight-balanced tree
B-trees
-
B-tree
-
B+ tree
-
B*-tree
-
B sharp tree
-
Dancing tree
-
2-3 tree
-
2-3-4 tree
-
Queap
-
Fusion tree
-
Bx-tree
-
AList
-
Heaps
-
Heap
-
Binary heap
-
Weak heap
-
Binomial heap
-
Fibonacci heap
-
AF-heap
-
Leonardo Heap
-
2-3 heap
-
Soft heap
-
Pairing heap
-
Leftist heap
-
Treap
-
Beap
-
Skew heap
-
Ternary heap
-
D-ary heap
-
Brodal queue
Tree
- Trie
- Radix tree
- Suffix tree
- Suffix array
- Compressed suffix array
- FM-index
- Generalised suffix tree
- B-trie
- Judy array
- X-fast trie
- Y-fast trie
- Merkle Tree
- Ctrie
Multiway trees
- Ternary tree
- K-ary tree
- And–or tree
- (a,b)-tree
- Link/cut tree
- SPQR-tree
- Spaghetti stack
- Disjoint-set data structure
- Fusion tree
- Enfilade
- Exponential tree
- Fenwick tree
- Van Emde Boas tree
- Rose tree
Space-partitioning trees These are data structures used for space partitioning or binary space partitioning.
- Segment tree
- Interval tree
- Range tree
- Bin
- K-d tree
- Implicit k-d tree
- Min/max k-d tree
- Relaxed k-d tree
- Adaptive k-d tree
- Quadtree
- Octree
- Linear octree
- Z-order
- UB-tree
- R-tree
- R+ tree
- R* tree
- Hilbert R-tree
- X-tree
- Metric tree
- Cover tree
- M-tree
- VP-tree
- BK-tree
- Bounding interval hierarchy
- Bounding volume hierarchy
- BSP tree
- Rapidly exploring random tree
Application-specific trees
- Abstract syntax tree
- Parse tree
- Decision tree
- Alternating decision tree
- Minimax tree
- Expectiminimax tree
- Finger tree
- Expression tree
- Log-structured merge-tree
- Lexicographic Search Tree
Hashes
- Bloom filter
- Count-Min sketch
- Distributed hash table
- Double Hashing
- Dynamic perfect hash table
- Hash array mapped trie
- Hash list
- Hash table
- Hash tree
- Hash trie
- Koorde
- Prefix hash tree
- Rolling hash
- MinHash
- Quotient filter
- Ctrie
Graphs
- Graph
- Adjacency list
- Adjacency matrix
- Graph-structured stack
- Scene graph
- Binary decision diagram
- Zero-suppressed decision diagram
- And-inverter graph
- Directed graph
- Directed acyclic graph
- Propositional directed acyclic graph
- Multigraph
- Hypergraph
Other
- Lightmap
- Winged edge
- Quad-edge
- Routing table
- Symbol table