This repository contains a comprehensive collection of C++ implementations for various data structures and algorithms, ranging from arrays to graphs. The goal of this project is to provide clear and efficient code examples for students, educators, and professionals interested in learning or reviewing DSA concepts.
The repository is organized by data structure categories. Each folder contains C++ code files that implement various algorithms related to the specific data structure.
- Basic Operations: Insertion, Deletion, Traversal
- Searching Algorithms: Linear Search, Binary Search
- Sorting Algorithms: Bubble Sort, Selection Sort, Merge Sort, Quick Sort
- Singly Linked List: Insertion, Deletion, Reversal
- Doubly Linked List: Insertion, Deletion, Reversal
- Circular Linked List: Operations and Use Cases
- Array-based Implementation
- Linked List-based Implementation
- Applications: Expression Evaluation, Backtracking
- Simple Queue: Array and Linked List Implementations
- Circular Queue
- Priority Queue
- Dequeue (Double-ended Queue)
- Binary Tree: Traversal (Inorder, Preorder, Postorder)
- Binary Search Tree (BST): Insertion, Deletion, Search
- AVL Tree: Self-balancing Tree Operations
- Heap: Min-Heap and Max-Heap Implementation
- Graph Representations: Adjacency Matrix, Adjacency List
- Traversal Algorithms: Depth-First Search (DFS), Breadth-First Search (BFS)
- Shortest Path Algorithms: Dijkstra, Bellman-Ford
- Minimum Spanning Tree: Prim's, Kruskal's
- Hashing: Hash Tables, Collision Handling
- Dynamic Programming: Fibonacci, Knapsack, Longest Common Subsequence
- Bit Manipulation: Basic Bitwise Operations, Tricks and Tips
To compile and run the C++ codes, you'll need a C++ compiler like GCC or MSVC.
You can compile any C++ file using the following command:
g++ filename.cpp -o outputfile
This project is intended to help:
- Students: Understand and implement DSA concepts in C++.
- Educators: Use the examples as teaching aids.
- Professionals: Quickly reference and review DSA implementations.
Contributions are welcome! If you'd like to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch
. - Add your code or make improvements.
- Commit your changes:
git commit -m 'Add feature'
. - Push to your branch:
git push origin feature-branch
. - Create a pull request.
Please ensure that your code is well-documented and follows the repository's style guidelines.
If you have any questions or suggestions, feel free to reach out:
- Email: vimalnegi2003@gmail.com
- LinkedIn: Vimal Negi
- C++ Community: For continuous support and resources.
- Open Source Projects: For inspiration and code examples.
Made with ❤️ by Vimal Negi