This is open repository for anyone who wants to learn c++ from scratch. I will try to teach you like 6 year old kid. If you found this helpful hit the star button and contribute.
- What is c++
- Why we need to learn it
- How c++ was invented
- Do i need to learn c before learning c++
- How c++ works
- How compiler works
- how Linker works
- Variables
- Functions
- Header Files
- Conditions
- Loops
- Pointers
- References
- Classes
- Constructor
- Deconstructor
- Inheritance
- Introduction to Data Structures and Algorithms
- What are Data Structures and Algorithms?
- Importance and Applications
- Big-O Notation (Time and Space Complexity)
- Common Complexities and Growth Rates
- Arrays and Strings
- Basics of Arrays
- Array Operations (Insertion, Deletion, Searching)
- Multidimensional Arrays
- Introduction to Strings
- String Manipulation Techniques and Functions
- Linked Lists
- Singly Linked List
- Doubly Linked List
- Circular Linked List
- Common Linked List Operations (Insertion, Deletion, Traversal)
- Applications of Linked Lists
- Stacks
- Introduction to Stacks (LIFO Principle)
- Stack Operations (Push, Pop, Peek)
- Implementations of Stacks (Array-Based, Linked List-Based)
- Applications of Stacks (e.g., Backtracking, Expression Evaluation)
- Queues
- Introduction to Queues (FIFO Principle)
- Types of Queues (Simple, Circular, Deque, Priority Queue)
- Queue Operations (Enqueue, Dequeue, Peek)
- Implementations of Queues (Array-Based, Linked List-Based)
- Applications of Queues (e.g., Scheduling, Buffers)
- Trees
- Basics of Trees and Terminology
- Binary Trees
- Binary Search Trees (BST)
- Tree Traversals (In-Order, Pre-Order, Post-Order)
- Applications of Trees
- Advanced Trees
- AVL Trees (Self-Balancing Binary Search Trees)
- Red-Black Trees
- B-Trees and B+ Trees
- Trie Data Structure
- Segment Trees and Fenwick Trees
- Heaps and Priority Queues
- Introduction to Heaps
- Min-Heap and Max-Heap Properties
- Heap Operations (Insertion, Deletion, Heapify)
- Priority Queue Implementations
- Applications of Heaps (e.g., Sorting, Dijkstra's Algorithm)
- Hashing
- Hash Tables and Hash Functions
- Collision Resolution Techniques (Chaining, Open Addressing)
- Load Factor and Rehashing
- Applications of Hashing (e.g., Caching, Dictionaries)
- Graphs
- Basics of Graphs (Terminology, Representation)
- Graph Traversal Techniques (DFS, BFS)
- Directed and Undirected Graphs
- Weighted Graphs and Graph Representations
- Applications of Graphs
- Advanced Graph Algorithms
- Shortest Path Algorithms (Dijkstra, Bellman-Ford)
- Minimum Spanning Tree (Kruskal, Prim’s Algorithms)
- Topological Sorting
- Network Flow Algorithms (Ford-Fulkerson, Edmonds-Karp)
- Sorting Algorithms
- Bubble Sort, Selection Sort, Insertion Sort
- Merge Sort and Quick Sort (Divide and Conquer)
- Heap Sort and Counting Sort
- Radix Sort and Bucket Sort
- Analysis and Applications of Sorting Algorithms
- Searching Algorithms
- Linear Search
- Binary Search
- Interpolation Search
- Depth-First Search (DFS) and Breadth-First Search (BFS) for Graphs
- Applications of Searching
- Dynamic Programming
- Introduction to Dynamic Programming
- Memoization and Tabulation Techniques
- Classic DP Problems (Fibonacci, Knapsack, Longest Common Subsequence)
- Optimal Substructure and Overlapping Subproblems
- Greedy Algorithms
- Introduction to Greedy Approach
- Greedy vs. Dynamic Programming
- Common Greedy Algorithms (Fractional Knapsack, Huffman Coding)
- Applications of Greedy Algorithms
- Divide and Conquer
- Introduction to Divide and Conquer
- Classic Examples (Binary Search, Merge Sort, Quick Sort)
- Matrix Multiplication and Convolution
- Master Theorem
- Backtracking and Recursion
- Basics of Recursion and Backtracking
- Solving Problems with Recursion (e.g., Factorial, Permutations)
- Backtracking Algorithms (N-Queens, Sudoku Solver)
- Optimization and Avoiding Redundant Work in Recursion
- Advanced Topics
- Bit Manipulation Techniques
- Computational Geometry Basics
- Probabilistic Data Structures (Bloom Filter, Skip List)
- Union-Find and Disjoint Set Union (DSU)
- Complexity Theory
- P, NP, and NP-Complete Problems
- Introduction to Reductions
- Approximation Algorithms for NP-Hard Problems
- Real-Life Applications and Open Problems
- Case Studies and Real-World Applications
- Real-Life Applications of Data Structures and Algorithms
- Problem-Solving Approach and Methodologies
- Interview Practice Questions and Solution