This repository contains a collection of Java implementations of various data structures and algorithms. It serves as a personal learning resource and reference for common DSA concepts and their implementations.
This project is a comprehensive collection of Data Structures and Algorithms implemented in Java. It covers fundamental topics that are essential for understanding computer science concepts and preparing for technical interviews.
The repository includes implementations and examples of:
-
Data Structures
- Arrays and Strings
- Linked Lists (Singly, Doubly, Circular)
- Stacks and Queues
- Trees (Binary Trees, Binary Search Trees, AVL Trees, etc.)
- Heaps (Min Heap, Max Heap)
- Hash Tables and Hash Maps
- Graphs (Adjacency List, Adjacency Matrix)
- Tries
-
Algorithms
- Sorting Algorithms (Bubble Sort, Merge Sort, Quick Sort, Heap Sort, etc.)
- Searching Algorithms (Binary Search, Linear Search, etc.)
- Graph Algorithms (BFS, DFS, Dijkstra's, etc.)
- Dynamic Programming
- Greedy Algorithms
- Backtracking
- Divide and Conquer
- String Algorithms
The code is organized by topics, making it easy to navigate and find specific implementations.
-
Clone the repository:
git clone https://github.com/utkarsh-naman/DSA.git
-
Navigate to the specific topic/file you want to study
-
Compile and run the Java files:
javac FileName.java java FileName
This is a personal learning repository. However, if you find any bugs or have suggestions for improvements, feel free to open an issue.
This project is open source and available for educational purposes.