Hash tables are an incredibly important data structure. In this practice, you will learn about the underlying mechanics of the methods within hash tables, how they correlate to the data structure's efficiency, and the kinds of problems where they are an optimal tool to utilize. You will also:
- Compare and contrast the properties and operations of an Array, Linked List, and Hash Table
- Define a hash collision and how to handle them
- Identify the mechanics and complexity of adding and removing elements from a Hash Table
- Use hash tables to improve time complexity through caching (memoization and tabulation)
- Select a Hash Table when it is the appropriate tool for solving a problem
- Clone the starter from the Download link at the bottom of this page
- Run
npm install
to install dependencies. - Run
npm test
to run specs.
- Basic Phase 1: Implementing a hash table
- Develop the basic methods behind a hash table, including insert, read and resize.
- Intermediate Phase 2: Hash table practice problems
- Use hash tables, via JavaScript's
Object()
and/orSet()
, to efficiently solve problems.
- Use hash tables, via JavaScript's
- Advanced Phase 3: Hash table optimization problems
- Explore complex problems where hash tables help with memoization.