Skip to content

euvitorti/Data-Structures-Algorithms-Roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms in C++ 🗺️

Welcome to the Data Structures and Algorithms in C++ repository! This project aims to provide a comprehensive guide to mastering data structures and algorithms, focusing on practical implementations using C++ and the GNU Compiler Collection (g++).


Objectives

  • Learn fundamental and advanced data structures and algorithms.
  • Understand the theory behind various techniques.
  • Implement these concepts efficiently in C++.
  • Practice solving problems to solidify understanding.

Repository Structure

Each topic is organized into its own folder with the following structure:

Topic Name/
├── topicName.txt       # Explanation of the topic and key concepts
├── Code/           # C++ implementations
   ├── example.cpp # Example code for the topic
   └── ...

📖 Topics Covered

1. Fundamentals of Programming

  • Syntax of C++
  • Control Structures
  • Functions
  • Basics of Object-Oriented Programming (OOP)
  • Pseudocode

2. Basic Data Structures

  • Arrays
  • Linked Lists
  • Stacks
  • Queues
  • Hash Tables

3. Algorithm Complexity

  • Big O Notation
  • Big Theta (Θ) Notation
  • Big Omega (Ω) Notation
  • Time and Space Complexity Analysis

4. Sorting Algorithms

  • Bubble Sort
  • Insertion Sort
  • Selection Sort
  • Merge Sort
  • Quick Sort
  • Heap Sort

5. Searching Algorithms

  • Linear Search
  • Binary Search

6. Advanced Data Structures

  • Trees (Binary Trees, Binary Search Trees, AVL Trees, B-Trees)
  • Graphs (Directed and Undirected)
  • Graph Traversals (BFS, DFS)
  • Shortest Path Algorithms (Dijkstra, Bellman-Ford)
  • Minimum Spanning Trees (Prim, Kruskal)

7. Problem-Solving Techniques

  • Brute Force
  • Greedy Algorithms
  • Divide and Conquer
  • Dynamic Programming
  • Backtracking
  • Recursion
  • Two Pointer Technique
  • Sliding Window Technique

8. Practice Platforms


🛠 Tools and Requirements

  • Compiler: g++ (GNU Compiler Collection)
  • Operating System: Linux

Installation of g++

If g++ is not installed on your Linux system, you can install it using the following command:

sudo apt update && sudo apt install g++

Running the Code

  1. Navigate to the folder containing the .cpp file.
  2. Compile the program using g++:
    g++ example.cpp -o example.exe
  3. Run the compiled program:
    ./example.exe

🤝 Contribution Guidelines

We welcome contributions! If you want to improve the code or add new topics, please:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Commit your changes (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-name).
  5. Create a Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Acknowledgments

Special thanks to the creators of roadmap.sh for providing a detailed guide on this topic.