Week 1 Introduction to Algorithms and Data Structures.
- isPrime
- numPrimes up until a number
- sumElementsUpToIterative
- sumElementsUpToRecursive
- reverse array recursively
- multiply recursively
- fibonacci variants
- count occurences in array
- merge two arrays
Week 2
- removeLastOccurence of integer in array
- removeAll integers in arraylist
- clone 2D array
- simple Queue implementation
- ArrayStack
- StackQueue
- Doubly Linked List implementation
- reverse of Queue (in the Queue file)
- ArrayQueue
Week 3
- copy a Tree
- ReversedListIterator
- isHeap
- getParent of specific index in a array representation of a heap
- BinaryTreeIterator (depth-first)
- isTreeComplete
- sum the values of the nodes of two n-ary trees
- findMiddleInLastLayer
Week 4
- insertionSort
- selectionSort
- mergeSort
- merge (of two sorted queues)
- sortingSomeLawyer (Queue containing lawyers)
- pqSort
- completeTasks
- quickSort
Week 6
- bucketSort
- setOperations (union, intersection, difference, exclusiveOr, toString)
- hashFunctions (ETHHash, GNUCPPHash, GNUCC1Hash, HashCodeHash
- stableSort
- HashTable
- MultiMap
Week 7
- descendingOrder (flatten BT to List)
- isTreeBST (BinarySearchTree)
- isTreeBalanced
- isTreeAVL
- isRedBlackTree (blackHeight, noRedChildren, isTreeBST)
- isSpecialTree (MultiwaySearchTree)
Week 8
- isNodeReachable
- GraphIterator (depth-first)
- detectCycle
Week 8 Part 2
- shortestPath (using iterator)
- numberOfConnectedComponents
- buildMST (Kruskal's Algorithm)
Dijkstra
- shortestPath (Dijkstra's algorithm)