Exercises for Intro to Algorithms and Data Structures in JavaScript
Welcome to the exercises. This is where the magic happens!
Monday - June 13th
- Implement a stack data structure:
- https://github.com/kuychaco/algoClass/blob/master/data-structures/stack.js
- Note: only do the first exercise after you implement the stack
- Create a queue data structure:
- https://github.com/kuychaco/algoClass/blob/master/data-structures/queue.js
- Note: no need to attempt the last exercise. Come back to it after we cover breadth-first search :)
- Start off with some intro to recursion problems
- If you want a challenge, attempt some popular recursion interview questions:
- https://github.com/kuychaco/algoClass/tree/master/recursion
- Note: some of these will only click after we go through sorting, graphs & trees later this week.
Tuesday - June 14th
- Implement the elementary sorting algorithms (bubble, insertion, selection):
- Implement Mergesort
- Implement Quicksort
- [Bonus] Try out Heapsort
###Wednesday - June 15th
- Implement a Linked List:
- Create a tree data structure:
- https://github.com/kuychaco/algoClass/blob/master/data-structures/tree.js
- Note: Hold off on Depth First Search and Breadth First Search because we haven't covered that yet.
- This is a catch up day so use the rest of the afternoon to finish up exercises from previous days and review anything that was confusing.
Thursday - June 16th
- Binary Search Tree
- Binary Search Array
Friday - June 17th
- Binary Search Tree (delete nodes)
- Implement a graph
- DFS for graph
- BFS for graph
- [Bonus] BFS/DFS for tree
Saturday - June 18th
- Create your own Hash Tables! Watch out for those collisions!