Assessment 11 Objectives
Assessment Outline: Data Structures
These are all in weighted order, so most important topics are first.
Stacks / Queues / Linked-Lists
- Linked-Lists
- Big O performance of operations
- Key difference between a linked-list and an array
- Implement a linked-list from scratch in JS
- Learn and tech linked-lists first because they are used by the other data structures
- Understand when to use a queue vs stack
- Be familiar with common interface methods (push, pop, peek)
- How is a stack used by your computer when running your own code (call stack)
- Why can you get stack overflow?
- Implement a queue
- using an Array as the underlying storage
- using a Linked-List as the underlying storage
- pros/cons for choosing Array vs Linked-List
- What is a priority queue? (Priority Queues are very popular interview questions)
- Note: deque aka double-ended queue is not important to learn
Hash Table
- Why are Hash Tables useful?
- The basic interface methods (get, set)
- Know the Big O of hash table operations
- Be able to solve problems that uses JavaScript
Map
and Set
to solve problems
- Basic idea behind a hashing function
- What characteristics make an effective hashing function?
- You don’t necessarily need to be able to implement one yourself as doing it well is difficult
Trees
- Binary trees are the most important type of tree
- Searching a binary tree is one of the most core recursive algorithms used
- If you understand binary search, most other operations will make sense
- How to implement core methods (add, find) given Node and Tree class skeleton code
- Tries
- A very useful type of tree, typically with 26 branches (a-z) at each node instead of 2
- How tries store their information (different than most other trees)
- Examples of tree structures in the wild: DOM, Filesystem
Array Sorting/Searching
- Binary search of a sorted array is one of the most fundemental algorithms
- you should understand its pseudocode and be able to implement from scratch in JS
- Other Searching algorithms
- Linear search: its Big O and how to implement it
- Simple sorting algorithms
- Bubble
- Selection
- Know how to implement them
- Know their Big O
- Fast Sorting Algorithms and their peformance
- Merge
- Know its Big O
- Understand its pseudocode
- You don’t need to know how to implement from scratch