# Prep Work

To succeed in this program, it is important that you review the material in this page before the start date. If you don't do this early on you will struggle during the program. Instead of spending your time and energy on what's important (peer-to-peer mock interviews & Leetcode challenges), you'll be stuck trying to understand basic concepts if you don't follow this advice.

Whatever you do, **don't procrastinate**. Be *very* comfortable with all the topics below.

## Use index cards to master the topics below

* Implement an [ArrayList](https://github.com/jwasham/coding-interview-university#arrays) from scratch
* Reverse a linked list
* Implement a Stack & a Queue using Array
* Implement a [HashTable](https://github.com/jwasham/coding-interview-university#hash-table) with simple Hashing functions
* Implement a [Graph](https://github.com/jwasham/coding-interview-university#graphs) using Adjacency List, and then write functions for BFS & DFS
* Write the [binary search](https://www.youtube.com/watch?v=P3YID7liBug) algorithm both recursively and iteratively
* Write the [merge sort](https://www.youtube.com/watch?v=TzeBrDU-JaY) algorithm
* Write the [quicksort](https://www.youtube.com/watch?v=COk73cpQbFQ) algorithm
* Print binary tree using DFS (in-order, preorder and post order - all three of them) and BFS.
* Memorize time & space complexities for common algorithms. [Here's](http://bigocheatsheet.com/) an interesting website.
* Implement a [trie](https://github.com/jwasham/coding-interview-university#tries).
* Learn [these](https://www.geeksforgeeks.org/bits-manipulation-important-tactics/) important bit manipulation tactics.
* Read and do the exercises (pages 38 - 58) from the [CTCI](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X) book.


---

# 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://heapclub.gitbook.io/heapclub-algorithms/prepwork.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.
