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

https://github.com/krotrn/cpp

This repository contains C++ code and projects. It serves as a collection of examples, utilities, and applications written in C++. Whether you are a beginner looking to learn C++ or an experienced developer seeking useful snippets and projects, this repository aims to be a valuable resource.
https://github.com/krotrn/cpp

cpp

Last synced: 3 months ago
JSON representation

This repository contains C++ code and projects. It serves as a collection of examples, utilities, and applications written in C++. Whether you are a beginner looking to learn C++ or an experienced developer seeking useful snippets and projects, this repository aims to be a valuable resource.

Awesome Lists containing this project

README

          

# Learning DSA in C++

Welcome to my journey of learning Data Structures and Algorithms (DSA) in C++. This repository is a personal project where I commit to learning and improving my DSA skills every day. I aim to update this repository regularly with new concepts, code snippets, and challenges I've tackled.

## Introduction

Data Structures and Algorithms are fundamental to improving problem-solving skills and understanding computational efficiency. My goal is to master these concepts in C++ due to its performance advantages and its close relationship with system-level resources.

## Topics Covered

### Data Structures

- **Arrays**: Static and dynamic arrays, and their applications.
- **Linked Lists**: Singly and doubly linked lists; basic operations like insertion, deletion, and traversal.
- **Stacks**: Implementation and usage scenarios.
- **Queues**: Different types such as circular and priority queues.
- **Heap**: Max and min heaps; applications in priority queues and heapsort.
- **HashMap**: Efficient key-value storage, collision handling, and usage in various algorithms.
- **Sets**: Unordered and ordered sets, operations like union, intersection, and difference.
- **Trees**: General trees, binary trees, and traversal techniques (preorder, inorder, postorder).
- **Binary Search Trees (BST)**: Operations like insertion, deletion, and searching in a BST.

### Algorithms

- **Sorting and Searching**: Bubble sort, insertion sort, merge sort, quicksort, linear search, binary search.
- **Greedy Algorithms**: Problem-solving strategies that build up a solution step by step, making locally optimal choices.
- **Dynamic Programming (DP)**: Techniques to solve complex problems by breaking them down into simpler subproblems, focusing on overlapping subproblems and optimal substructure.
- **Graph Algorithms**: Representation of graphs (adjacency matrix, adjacency list), depth-first search (DFS), breadth-first search (BFS), shortest path algorithms (Dijkstra's, Bellman-Ford), and minimum spanning tree algorithms (Kruskal's, Prim's).
- **Backtracking(Currently Learning)**: Systematic way to iterate through all possible configurations of a search space, used for solving constraint satisfaction problems like puzzles, permutations, and combinations.

### Object-Oriented Programming (OOP)

- Mastering OOP principles such as encapsulation, inheritance, polymorphism, and abstraction in C++ for better modularity and code reuse.

This journey is ongoing, and I plan to explore more advanced topics and dive deeper into optimizing solutions.

## Learning Resources

I've been leveraging a variety of resources to aid my learning:

- [C++ Documentation](https://en.cppreference.com/w/)
- [Decode DSA with C++ 2.0](https://www.pwskills.com/)
- [LeetCode](https://leetcode.com/)

## LeetCode Profile

You can follow my problem-solving progress on LeetCode:
[LeetCode - Krotrn](https://leetcode.com/u/krotrn/)

## Conclusion

This repository serves as both a log of my personal learning journey and a resource for anyone interested in mastering DSA in C++. Feel free to explore, contribute, or draw inspiration from it!

## GitHub Repository

Explore my code and projects:
[GitHub - CPP DSA Journey](https://github.com/krotrn/CPP)