Skip to content

This repository provides a comprehensive roadmap for learning Data Structures and Algorithms (DSA)πŸ“Š from the ground up. It covers essential topics required for β˜‰ competitive programming, πŸ“— technical interviews, and real-world βœ” software development.

Notifications You must be signed in to change notification settings

karthikeyankdeveloper/DSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

86 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Data Structures and Algorithms (DSA)

Static Badge Static Badge GitHub commit activity GitHub contributors GitHub last commit GitHub language count GitHub code size in bytes GitHub repo size

Welcome to the repository for Data Structures and Algorithms (DSA) curated by Karthikeyan. This repository provides a comprehensive collection of implementations, problems, and resources for mastering various data structures and algorithms, covering both C and Java.

About the Developer

Karthikeyan K is the developer and curator of this repository, specializing in data structures and algorithms. For further details about my work and to connect, please visit my LinkedIn profile.

Repository Contents

  • Data Structures: Implementations and explanations of fundamental data structures including arrays, linked lists, stacks, queues, trees, and graphs.
  • Algorithms: Detailed explanations and implementations of common algorithms such as sorting, searching, and dynamic programming.
  • Practice Problems: A collection of problems and challenges to test and enhance your understanding of data structures and algorithms.
  • Resources: Links to additional learning materials, tutorials, and references for further study.

Folder Structure - Quick Access

DSA/
β”œβ”€β”€ CodeBase/       
β”‚   β”œβ”€β”€ data_structures/ 
β”‚   β”‚   β”œβ”€β”€ arrays/ 
β”‚   β”‚   β”‚   β”œβ”€β”€ Array.java
β”‚   β”‚   β”‚   β”œβ”€β”€ Array.cpp
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ linked_lists/  
β”‚   β”‚   β”‚   β”œβ”€β”€ singly/     
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ SinglyLinkedList.java
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ SinglyLinkedList.cpp
β”‚   β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ doubly/ 
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ DoublyLinkedList.java
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ DoublyLinkedList.cpp
β”‚   β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ circular/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CircularLinkedList.java
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CircularLinkedList.cpp
β”‚   β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚   └── README.md implementations
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ stacks/     
β”‚   β”‚   β”‚   β”œβ”€β”€ Stack.java
β”‚   β”‚   β”‚   β”œβ”€β”€ Stack.cpp
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ queues/    
β”‚   β”‚   β”‚   β”œβ”€β”€ Queue.java
β”‚   β”‚   β”‚   β”œβ”€β”€ Queue.cpp
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ trees/     
β”‚   β”‚   β”‚   β”œβ”€β”€ binary_trees/ 
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BinaryTree.java
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BinaryTree.cpp
β”‚   β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ binary_search_trees/ 
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BinarySearchTree.java
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BinarySearchTree.cpp
β”‚   β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚   └── README.md  
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ graphs/       
β”‚   β”‚   β”‚   β”œβ”€β”€ Graph.java
β”‚   β”‚   β”‚   β”œβ”€β”€ Graph.cpp
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   └── README.md      
β”‚   β”‚
β”‚   β”œβ”€β”€ algorithms/       
β”‚   β”‚   β”œβ”€β”€ sorting/      
β”‚   β”‚   β”‚   β”œβ”€β”€ BubbleSort.java
β”‚   β”‚   β”‚   β”œβ”€β”€ MergeSort.java
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ searching/    
β”‚   β”‚   β”‚   β”œβ”€β”€ BinarySearch.java
β”‚   β”‚   β”‚   β”œβ”€β”€ LinearSearch.java
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ dynamic_programming/ 
β”‚   β”‚   β”‚   β”œβ”€β”€ Knapsack.java
β”‚   β”‚   β”‚   β”œβ”€β”€ LongestCommonSubsequence.java
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ graph_algorithms/ 
β”‚   β”‚   β”‚   β”œβ”€β”€ Dijkstra.java
β”‚   β”‚   β”‚   β”œβ”€β”€ Kruskal.java
β”‚   β”‚   β”‚   └── README.md
β”‚   β”‚   └── README.md     
β”‚   β”‚
β”œβ”€β”€ Markdown/              
β”‚   β”œβ”€β”€ data_structures/    
β”‚   β”‚   β”œβ”€β”€ arrays.md
β”‚   β”‚   β”œβ”€β”€ linked_lists.md
β”‚   β”‚   β”œβ”€β”€ stacks.md
β”‚   β”‚   β”œβ”€β”€ queues.md
β”‚   β”‚   β”œβ”€β”€ trees.md
β”‚   β”‚   └── graphs.md
β”‚   └── algorithms/      
β”‚       β”œβ”€β”€ sorting.md
β”‚       β”œβ”€β”€ searching.md
β”‚       β”œβ”€β”€ dynamic_programming.md
β”‚       └── graph_algorithms.md
β”‚
└── OneNote/               
    β”œβ”€β”€ DSA
    β”œβ”€β”€ Collection
    └── OOPS
        

About

This repository provides a comprehensive roadmap for learning Data Structures and Algorithms (DSA)πŸ“Š from the ground up. It covers essential topics required for β˜‰ competitive programming, πŸ“— technical interviews, and real-world βœ” software development.

Topics

Resources

Stars

Watchers

Forks