Skip to content

A comprehensive collection of data structures and algorithms in CPP, designed for competitive programming and coding interview preparation.

Notifications You must be signed in to change notification settings

shitu13/DSA-Practice

Repository files navigation

Data Structures and Algorithms

Welcome to the DSA (Data Structures and Algorithms) Learning Repository! This repository is dedicated to documenting my journey as I learn and practice various data structures and algorithms. The goal is to strengthen my understanding and problem-solving skills in computer science fundamentals.

Table of Contents

Introduction

This repository is a collection of my notes, code implementations, and practice problems related to data structures and algorithms. It serves as both a study guide and a reference for anyone interested in learning about these topics.

Coding Profiles

You can find my profiles on various coding platforms here:

Feel free to check out my profiles to see my progress and achievements on these platforms. Btw, I often use My Compiler as a code compiler and GitHub Gist to paste codes.

Platforms

LeetCode

LeetCode is a popular online platform for coding practice. It offers a variety of problems categorized by difficulty and topic. My solutions for LeetCode problems can be found in the this directory.

Codeforces

Codeforces is a competitive programming platform that hosts contests regularly. It provides a wide range of challenging problems. Solutions to Codeforces problems are available in this directory.

HackerRank

HackerRank is another platform for practicing coding problems and participating in contests. Solutions to HackerRank problems are stored in this directory.

Data Structures

Arrays

Arrays are a fundamental data structure used to store elements of the same type in contiguous memory locations. Check out my array implementations and problem solutions in this directory.

Linked Lists

Linked lists are linear data structures where elements are not stored at contiguous memory locations. Instead, each element points to the next. Visit this directoryfor implementations and problems.

Stacks and Queues

Stacks and queues are abstract data types that follow specific order principles (LIFO for stacks and FIFO for queues). Explore my implementations in this directory.

Trees

Trees are hierarchical data structures with nodes connected by edges. This directory contains various tree implementations and related problems.

Graphs

Graphs consist of vertices connected by edges and are used to represent networks. My graph implementations and problem solutions are in the DataStructures/Graphs directory.

Heaps

Heaps are specialized tree-based data structures that satisfy the heap property. Find my heap implementations in the DataStructures/Heaps directory.

Hash Tables

Hash tables store key-value pairs and provide fast data retrieval. Check out my hash table implementations in this directory.

Algorithms

Sorting

Sorting algorithms arrange elements in a particular order. My implementations of various sorting algorithms can be found in this directory.

Searching

Searching algorithms are used to find elements within data structures. Visit this directory for different searching techniques.

Dynamic Programming

Dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. My dynamic programming solutions are in this directory.

Greedy Algorithms

Greedy algorithms make local optimal choices at each step. Find my greedy algorithm solutions in the Algorithms/GreedyAlgorithms directory.

Backtracking

Backtracking is a technique for solving problems recursively by trying to build a solution incrementally. My backtracking solutions are in the Algorithms/Backtracking directory.

Graph Algorithms

Graph algorithms deal with the properties and structures of graphs. Explore my graph algorithm solutions in the Algorithms/GraphAlgorithms directory.

String Algorithms

String algorithms are used to solve problems related to strings. Check out my solutions in the Algorithms/StringAlgorithms directory.

Contributing

We welcome contributions from the community! If you'd like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Commit your changes.
  4. Push your branch to your forked repository.
  5. Open a pull request to the main repository.

Please ensure your code adheres to our coding standards and includes appropriate comments and documentation.

License

This repository is licensed under the MIT License. See the LICENSE file for more information.


Happy coding!

About

A comprehensive collection of data structures and algorithms in CPP, designed for competitive programming and coding interview preparation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages