1. hashing
    1. collision
      1. chaining
      2. open addressing
      3. probing
        1. double hashing
        2. quadratic
        3. linear
    2. function
    3. pigeon hole
  2. complexity
    1. space
    2. time
      1. undecided
      2. intractible
      3. tractible
    3. bounds
      1. theta
      2. Omega
      3. O
  3. pattern
    1. random
    2. reverse
    3. ordered
  4. graphs
    1. connectivity
      1. dense
      2. sparse
    2. structure
      1. isomorphic
      2. subgraph
    3. types
      1. complete
      2. simple
      3. undirected
      4. directed
      5. weighted
    4. navigation
      1. dijkstra's
      2. DFS
      3. BFS
      4. kruskal's
    5. representations
      1. matrix
      2. adjacency list
  5. counting
    1. rules
      1. inclusion-exclusion
      2. sum
      3. product
    2. tree diagrams
    3. problems
      1. unordered
      2. ordered
      3. no repetition
      4. repetition
      5. permutation
      6. combination
  6. trees
    1. traversal
      1. postfix
      2. prefix
      3. infix
    2. types
      1. AVL
      2. Binary
      3. BST
      4. Heap
      5. B+
    3. structure
      1. nearly complete
      2. complete
  7. proofs
    1. complexity
    2. correctness
    3. recurrence relation
    4. recursive
    5. induction
    6. loop invariants
  8. sorting
    1. style
      1. iterative
      2. recursive
    2. types
      1. heapsort
      2. mergesort
      3. quicksort
      4. selection
      5. insertion
  9. structures
    1. types
      1. linked list
      2. priority queue
      3. hash table
      4. stack
      5. trees
    2. operations
      1. find
      2. delete
      3. insert