An open API service indexing awesome lists of open source software.

https://github.com/theleopard65/my-dsa-journey

This repository is a comprehensive collection of my work and understanding as I go through various DSA topics. I created this repo to document and showcase the concepts, implementations, and problem-solving techniques I learn throughout my journey.
https://github.com/theleopard65/my-dsa-journey

array c cpp dsa graph library linked-list merge-sort queue recursi sorting stack strings time-complexity tree use-cases vector

Last synced: 4 months ago
JSON representation

This repository is a comprehensive collection of my work and understanding as I go through various DSA topics. I created this repo to document and showcase the concepts, implementations, and problem-solving techniques I learn throughout my journey.

Awesome Lists containing this project

README

        

# Leopard's DSA Learning Journey

Welcome to my **Data Structures and Algorithms (DSA) Learning Journey**! This repository is a comprehensive collection of my work and understanding as I go through various DSA topics. I created this repo to document and showcase the concepts, implementations, and problem-solving techniques I learn throughout my journey.

### Contents

This repository covers the following important topics in DSA:

1. **Time Complexity**: Learn about different time complexities like Constant, Logarithmic, Linear, Quadratic, etc., and how they affect algorithm efficiency.

2. **Arrays**: Basic and advanced operations on arrays, including 1D and 2D arrays and their manipulation.

3. **Strings**: Working with strings, including common string manipulation algorithms and libraries.

4. **Linked Lists**: Covers singly linked lists, doubly linked lists, circular linked lists, and related operations.

5. **Stacks**: Stack implementation using arrays and linked lists. Includes finite and infinite stacks.

6. **Queues**: Covers circular queues, linear queues, and priority queues, all implemented using arrays and linked lists.

7. **Vectors**: Dynamic and static vector implementations, including multidimensional vectors.

8. **Recursion**: Examples of different types of recursion like tail recursion, non-tail recursion, and indirect recursion.

9. **Trees**: Binary trees, AVL trees, and Binary Search Trees (BST), along with common operations like traversal and insertion.

10. **Graphs**: Graph data structure, along with BFS, DFS, and Dijkstra's algorithm for directed and undirected graphs.

11. **Hash Maps**: Implementation of hash maps using techniques like separate chaining, linear probing, quadratic probing, and double hashing.

12. **Sorting Algorithms**: Implementations of common sorting algorithms like Bubble Sort, Selection Sort, Quick Sort, Merge Sort, etc.

### Structure of the Repository

The repository is organized as follows:

```
.
├── 1.Complexity-Analysis # Understanding Time & Space Complexity
├── 2.Array # Array implementations and problems
├── 3.Strings # String manipulation techniques
├── 4.Linked-Lists # Linked List implementations
├── 5.Stack # Stack implementations (finite, infinite, etc.)
├── 6.Queue # Queue implementations (linear, circular, priority)
├── 7.Vector # Vector (dynamic/static) implementations
├── 8.Recursion # Recursion concepts and examples
├── 9.Trees # Tree data structures (Binary Tree, BST, AVL, B-Tree, Heap, Trie, etc.)
├── 10.Graphs # Graph algorithms (BFS, DFS, Dijkstra, etc.)
├── 11.Hash-Maps # Hash Map implementations (linear probing, separate chaining, etc.)
├── 12.Bubble-Sort # Bubble sort implementations
├── 13.Selection-Sort # Selection sort implementations
├── 14.Quick-Sort # Quick sort implementations
├── 15.Merge-Sort # Merge sort implementations
└── LICENSE # Repository License
```

### How to Use

1. Clone this repository to your local machine using:
```bash
git clone https://github.com/TheLeopard65/MY-DSA-JOURNEY.git
```

2. Navigate into the directory you are interested in.

3. Read the `README.md` in each folder for detailed explanations of the concepts and the implementations in each file.

4. Run the individual programs to see the algorithms in action.

5. Open the codes in VS-Code/nano/vim or any editor of your choice to learn from the code.

### Contribution

I will be continuously updating this repository as I learn new concepts. If you have any suggestions, improvements, or corrections, feel free to create an issue or submit a pull request.

### License

This Repository is open-source and available under the [MIT License](LICENSE). Feel free to use it for your Learning!

---

Happy Learning! ✨