Skip to content

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.

Notifications You must be signed in to change notification settings

sahukanishka/simple-cplusplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn C++ in simple way

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.


Chapters

  1. What is c++
  2. Why we need to learn it
  3. How c++ was invented
  4. Do i need to learn c before learning c++
  5. How c++ works
  6. How compiler works
  7. how Linker works
  8. Variables
  9. Functions
  10. Header Files
  11. Conditions
  12. Loops
  13. Pointers
  14. References
  15. Classes
  16. Constructor
  17. Deconstructor
  18. Inheritance

Data Structure and algorithms

  1. 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
  2. Arrays and Strings
    • Basics of Arrays
    • Array Operations (Insertion, Deletion, Searching)
    • Multidimensional Arrays
    • Introduction to Strings
    • String Manipulation Techniques and Functions
  3. Linked Lists
    • Singly Linked List
    • Doubly Linked List
    • Circular Linked List
    • Common Linked List Operations (Insertion, Deletion, Traversal)
    • Applications of Linked Lists
  4. 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)
  5. 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)
  6. Trees
    • Basics of Trees and Terminology
    • Binary Trees
    • Binary Search Trees (BST)
    • Tree Traversals (In-Order, Pre-Order, Post-Order)
    • Applications of Trees
  7. 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
  8. 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)
  9. Hashing
    • Hash Tables and Hash Functions
    • Collision Resolution Techniques (Chaining, Open Addressing)
    • Load Factor and Rehashing
    • Applications of Hashing (e.g., Caching, Dictionaries)
  10. Graphs
    • Basics of Graphs (Terminology, Representation)
    • Graph Traversal Techniques (DFS, BFS)
    • Directed and Undirected Graphs
    • Weighted Graphs and Graph Representations
    • Applications of Graphs
  11. 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)
  12. 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
  13. Searching Algorithms
    • Linear Search
    • Binary Search
    • Interpolation Search
    • Depth-First Search (DFS) and Breadth-First Search (BFS) for Graphs
    • Applications of Searching
  14. Dynamic Programming
    • Introduction to Dynamic Programming
    • Memoization and Tabulation Techniques
    • Classic DP Problems (Fibonacci, Knapsack, Longest Common Subsequence)
    • Optimal Substructure and Overlapping Subproblems
  15. Greedy Algorithms
    • Introduction to Greedy Approach
    • Greedy vs. Dynamic Programming
    • Common Greedy Algorithms (Fractional Knapsack, Huffman Coding)
    • Applications of Greedy Algorithms
  16. Divide and Conquer
    • Introduction to Divide and Conquer
    • Classic Examples (Binary Search, Merge Sort, Quick Sort)
    • Matrix Multiplication and Convolution
    • Master Theorem
  17. 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
  18. Advanced Topics
    • Bit Manipulation Techniques
    • Computational Geometry Basics
    • Probabilistic Data Structures (Bloom Filter, Skip List)
    • Union-Find and Disjoint Set Union (DSU)
  19. Complexity Theory
    • P, NP, and NP-Complete Problems
    • Introduction to Reductions
    • Approximation Algorithms for NP-Hard Problems
    • Real-Life Applications and Open Problems
  20. Case Studies and Real-World Applications
    • Real-Life Applications of Data Structures and Algorithms
    • Problem-Solving Approach and Methodologies
    • Interview Practice Questions and Solution

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published