1. 2.1 arrayhistorical

    Dynamic array implementation and two-pointer patterns.

  2. 2.2 hashmaphistorical

    Map implementations using a binary search tree and a hash table.

  3. 2.3 linkedlisthistorical

    Singly linked list, doubly linked list, circular doubly linked list, and problem-solving patterns.

  4. 2.4 queuehistorical

    Queue, circular queue, priority queue, and deque.

  5. 2.5 sethistorical

    An unordered set without duplicate elements.

  6. 2.6 stackhistorical

    A last-in-first-out stack.

  7. 2.7 treehistorical

    Binary trees, BST, AVL tree, Trie, and Huffman tree.

  8. 2.8 Red-Black Treehistorical

    Red-black tree properties, 2-3 trees, and implementation.

  9. 2.9 Skip Listhistorical

    Skip-list basics, motivation, implementation, and expected complexity.

  10. 2.10 heaphistorical

    Heap properties, max heap implementation, and min heap notes.

  11. 2.11 BitMaphistorical

    BitMap basics, example, and why it saves space.

  12. 2.12 BloomFilterhistorical

    Why BloomFilter is needed, how it works, use cases, and a Go implementation.

  13. 2.13 graphhistorical

    Graph basics, representations, traversal, and implementations.

  14. 2.14 UnionFindhistorical

    Union-Find, Quick Find, Quick Union, and optimizations.

  15. 2.15 LSMhistorical

    LSM basics, SSTables, operations, and comparison with B-trees.

  16. 2.16 ziplisthistorical

    ziplist and why it saves memory.

  17. 2.17 B Treehistorical

    B Tree, why it is used, and its relationship with B+ Tree.

  18. 2.18 Sparse Indexhistorical

    Sparse indexes and comparison with dense indexes.

  19. 2.19 Indexhistorical

    What an index is, index types, implementations, and selection considerations.

  20. 2.20 Inverted Indexhistorical

    Forward index and inverted index.