# Topics

#### Fundamental Data Structures

1. **Arrays**
   * Fixed-size arrays
   * Dynamic arrays (e.g., ArrayList in Java, Vector in C++)
2. **Linked Lists**
   * Singly linked list
   * Doubly linked list
   * Circular linked list
3. **Stacks**
   * Array-based implementation
   * Linked list-based implementation
4. **Queues**
   * Array-based implementation
   * Linked list-based implementation
   * Circular queue
   * Priority queue
   * Deque (double-ended queue)
5. **Hash Tables**
   * HashMap
   * HashSet
   * Collision resolution techniques (chaining, open addressing)

#### Tree Data Structures

1. **Binary Trees**
   * Full binary tree
   * Complete binary tree
   * Perfect binary tree
2. **Binary Search Trees (BST)**
   * Balanced BST (e.g., AVL tree, Red-Black tree)
   * Splay tree
   * Treap
3. **Heaps**
   * Min-heap
   * Max-heap
   * Binary heap
   * Fibonacci heap
   * Binomial heap
4. **Tries (Prefix Trees)**
   * Standard trie
   * Compressed trie (Radix tree)
   * Suffix trie
5. **Segment Trees**
   * Standard segment tree
   * Lazy propagation
6. **Fenwick Trees (Binary Indexed Trees)**
   * Standard Fenwick tree
7. **B-Trees**
   * B-tree
   * B+ tree
   * B\* tree
8. **Quad Trees**
   * Standard quad tree
9. **K-D Trees**
   * Standard K-D tree

#### Graph Data Structures

1. **Graphs**
   * Adjacency matrix
   * Adjacency list
   * Edge list
2. **Specialized Graphs**
   * Directed graph (digraph)
   * Weighted graph
   * Undirected graph
   * Directed Acyclic Graph (DAG)

#### Advanced Data Structures

1. **Disjoint Set (Union-Find)**
   * Quick-find
   * Quick-union
   * Union by rank
   * Path compression
2. **Bloom Filters**
   * Standard Bloom filter
   * Counting Bloom filter
3. **Skip Lists**
   * Standard skip list
4. **Suffix Arrays**
   * Standard suffix array
5. **Sparse Tables**
   * Standard sparse table

#### Specialized Data Structures

1. **Trie Variants**
   * Patricia trie
   * Suffix tree
2. **Spatial Data Structures**
   * R-tree
   * R\*-tree
   * k-d tree
   * Quad tree
3. **Multidimensional Data Structures**
   * Range tree
   * Interval tree
4. **Persistent Data Structures**
   * Persistent array
   * Persistent list
   * Persistent tree

#### String Data Structures

1. **Suffix Trees**
   * Standard suffix tree
   * Ukkonen's suffix tree
2. **Aho-Corasick Automaton**

#### Miscellaneous Data Structures

1. **Deque (Double-Ended Queue)**
2. **Multiset**
3. **Priority Deque**
4. **Ropes**

#### Probabilistic Data Structures

1. **Skip Lists**
2. **Bloom Filters**
3. **Count-Min Sketch**
4. **HyperLogLog**

#### Geometric Data Structures

1. **Segment Trees**
2. **Fenwick Trees**
3. **Interval Trees**
4. **Range Trees**
5. **Voronoi Diagrams**
6. **Delaunay Triangulations**

#### Hybrid Data Structures

1. **X-fast Trie**
2. **Y-fast Trie**
