C++ Project - Current Tasks
Area | Task | Done |
---|---|---|
Algorithm | Implement additional sorting algorithms (e.g., Merge Sort, Quick Sort) as methods of the `Array` class. | |
Project | Set up a simple build system with a Makefile or CMake. |
C++ Project - Completed Tasks
Area | Task | Done |
---|---|---|
C++ | Convert `Array` class to a generic template (`Array |
|
C++ | Implement Iterators (`begin()`, `end()`) for range-based `for` loop compatibility. | |
Array | Implement dynamic resizing to handle overflow automatically. | |
Project | Split monolithic code into `.h` (header) and `.cpp` (source) files. | |
Testing | Add a simple unit test function to main and set up an XCTest target. | |
C++ | Replace `using namespace std;` with specific `using` declarations for better practice. | |
Algorithm | Implement and test various duplicate-finding methods (sorted, hashing, brute-force). |
Section 1-3: Foundations (Completed)
Section | Topics | Done |
---|---|---|
1: Introduction | What are Data Structures?, ADT, What is an Algorithm? | |
2: Recursion | What is Recursion?, Static/Global Variables, Taylor Series, Fibonacci, Tower of Hanoi | |
3: Arrays Representations | Array ADT, 2D Arrays, Matrices |
Section 4 & 5: Arrays and Strings
Resource | Task | Done |
---|---|---|
Udemy | Array Operations (Display, Add, Insert, Delete, Search, Binary Search) | |
Udemy | String Ops (Length, Case, Reverse, Palindrome, Duplicates, Anagrams) | |
CTCI | Read Chapter 1: Arrays and Strings | |
Leetcode | Two Sum, Valid Anagram, Contains Duplicate, Longest Substring Without Repeating Characters |
Section 6: Matrices
Resource | Task | Done |
---|---|---|
Udemy | Diagonal, Lower/Upper Triangular, Symmetric Matrix representations | |
CTCI | Review matrix problems in Chapter 1 (e.g., Zero Matrix, Rotate Matrix) | |
Leetcode | Rotate Image, Set Matrix Zeroes, Spiral Matrix |
Section 7: Linked Lists
Resource | Task | Done |
---|---|---|
Udemy | Singly Linked List (Intro, Display, Search, Insert, Delete, Reverse) | |
Udemy | Circular Linked List, Doubly Linked List, Merge, Check for Loop | |
CTCI | Read Chapter 2: Linked Lists | |
Leetcode | Reverse Linked List, Linked List Cycle, Merge Two Sorted Lists, Remove Nth Node From End |
Section 9 & 10: Stacks and Queues
Resource | Task | Done |
---|---|---|
Udemy | Stack (Array/LL), Parenthesis Matching, Infix to Postfix | |
Udemy | Queue (Array/Circular/LL), Priority Queues | |
CTCI | Read Chapter 3: Stacks and Queues | |
Leetcode | Valid Parentheses, Min Stack, Implement Queue using Stacks |
Section 11: Trees
Resource | Task | Done |
---|---|---|
Udemy | Binary Trees: Creation, Traversals (Preorder, Inorder, Postorder, Level-order), Height & Count | |
Udemy | Binary Search Trees (BST): Search, Insert, Delete | |
Udemy | Advanced Trees: AVL Trees (Rotations), Heaps (Insert, Delete, Heap Sort), Trie | |
CTCI | Read Chapter 4: Trees and Graphs | |
Leetcode | Maximum Depth of Binary Tree, Invert Binary Tree, Validate Binary Search Tree, Kth Largest Element in an Array (Heap), Implement Trie |
Section 12: Hashing
Resource | Task | Done |
---|---|---|
Udemy | Hashing Intro, Chaining, Linear Probing, Quadratic Probing | |
CTCI | Review Hash Table applications in Ch 1 (Arrays/Strings) and Ch 2 (Linked Lists) | |
Leetcode | Group Anagrams, Ransom Note, Design HashMap |
Section 13: Sorting Techniques
Resource | Task | Done |
---|---|---|
Udemy | Basic (Bubble, Insertion, Selection), Advanced (Quick Sort, Merge Sort) | |
Udemy | Specialized (Count Sort, Radix Sort, Shell Sort) | |
CTCI | Read Chapter 10: Sorting and Searching | |
Leetcode | Merge Sorted Array, Sort Colors (Dutch National Flag problem) |
Section 14: Graphs
Resource | Task | Done |
---|---|---|
Udemy | Terminology, Representation, Breadth-First Search (BFS), Depth-First Search (DFS) | |
Udemy | Spanning Trees (Prim's Algorithm, Kruskal's Algorithm) | |
CTCI | Review Graph problems in Chapter 4 | |
Leetcode | Number of Islands, Clone Graph, Course Schedule (Topological Sort) |