# 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**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.sunilgudivada.dev/notebook/data-structures-and-algorithms/topics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
