This repository contains a collection of Data Structures and Algorithms (DSA) labs solved as part of the DSA module in our course. The labs cover a wide range of foundational topics in computer science, from basic sorting and searching algorithms to more advanced concepts like graph algorithms, binary search trees, and heaps. Each lab is implemented with a focus on understanding the underlying principles of DSA and optimizing for performance and efficiency.
The following is a list of key topics covered in this repository:
- Sorting Algorithms: Implementation of various sorting algorithms including Quick Sort, Merge Sort, Bubble Sort, and Insertion Sort.
- Searching Algorithms: Includes Binary Search, Linear Search, and their application in different contexts.
- Single-Source Shortest Path: Implementations of Dijkstra's and Bellman-Ford algorithms.
- Graph Algorithms: Depth-First Search (DFS), Breadth-First Search (BFS), and algorithms for detecting cycles, finding connected components, and minimum spanning trees.
- Binary Search Trees: Operations on BSTs such as insertion, deletion, traversal (in-order, pre-order, post-order), and balancing.
- Heap Operations: Implementation of Max Heap, Min Heap, and Heap Sort.
- Stack and Queue: Implementations and applications of stacks and queues, including problems like balanced parentheses, expression evaluation, and queue-based simulations.
-
Clone the Repository: Start by cloning the repository to your local system.
git clone https://github.com/Iyadh27/DSA_Labs.git
-
Navigate to the Project Directory: Move into the project directory.
cd DSA_Labs
Each lab folder contains source code files and may include additional documentation or explanations. To run a specific lab, navigate to the corresponding directory and follow the instructions provided in the README.md file within that directory (if available).
- Programming Language: C++
- Data Structures: Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Heaps
- Algorithms: Sorting, Searching, Graph Traversal, Pathfinding, Tree Operations
- Comprehensive DSA Coverage: A wide range of fundamental DSA topics are covered with clear, well-documented code.
- Optimized Implementations: Focus on efficient algorithms with an understanding of time and space complexity.
- Practical Applications: Labs include practical problems that demonstrate the application of DSA in real-world scenarios.
Contributions are welcome! If you have any suggestions, improvements, or additional labs to add, feel free to open an issue or submit a pull request.
This repository serves as a valuable resource for anyone looking to strengthen their understanding of Data Structures and Algorithms through practical, hands-on labs. Feel free to explore, learn, and contribute!