Skip to content

This repository consists of the code samples, Leetcode Solution, and notes for the Java data structures & algorithms

Notifications You must be signed in to change notification settings

AsifQamar/DSA-with-JAVA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures & Algorithms (DSA) in Java

Java License: MIT PRs Welcome

Welcome! This repository is my personal journey through the world of Data Structures and Algorithms, implemented in Java. It serves as a practice log and a collection of clean, well-explained solutions to common DSA problems.

The problems and learning path are inspired by some of the best resources available:

  • Kunal Kushwaha's DSA Bootcamp
  • AlgoCamp DSA Program
  • My Curated DSA Questions

🎯 About This Repository

This project is dedicated to providing clear and efficient Java implementations of fundamental data structures and algorithms. Each solution is crafted to be readable, well-commented, and easy to understand.


📚 Topics Covered

The repository is organized by topic, covering a wide range of essential DSA concepts.

Data Structures

  • Arrays & Strings
  • Linked Lists (Singly, Doubly, Circular)
  • Stacks & Queues
  • Heaps & Priority Queues
  • Trees (Binary, BST, AVL)
  • Segment Trees & Fenwick Trees
  • Graphs
  • Tries
  • Hash Maps & Sets

Algorithms

  • Sorting & Searching
  • Recursion & Backtracking
  • Divide & Conquer
  • Dynamic Programming
  • Greedy Algorithms
  • Bit Manipulation
  • Graph Algorithms (BFS, DFS, Dijkstra's, etc.)
  • String Algorithms (KMP, Z-algorithm)

📂 Repository Structure

The project is structured logically, with each major topic residing in its own directory for easy navigation.

/dsa-java
.gitignore
 README.md
  /src
     /arrays
     /backtracking
     /bitmanipulation
     /dynamicprogramming
     /graphs
     /heaps
     /linkedlists
     /recursion
     /searching & sorting
     /stacks
     /strings
     /trees
     /tries

🚀 Getting Started

Follow these instructions to get a copy of the project up and running on your local machine.

Prerequisites

  • Java Development Kit (JDK) 11 or higher.
  • An IDE of your choice (e.g., IntelliJ IDEA, VS Code, Eclipse).
  • Git installed on your machine.

Installation

  1. Clone the repository:
    git clone [https://github.com/your-username/dsa-java.git](https://github.com/your-username/dsa-java.git)
  2. Navigate to the project directory:
    cd dsa-java
  3. Open the project in your favorite IDE. You can now browse and run individual files.

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🎓 Learning Resources

This repository heavily relies on the fantastic content from the following educators and platforms:


📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


Thanks for visiting! Happy Coding! 💻

About

This repository consists of the code samples, Leetcode Solution, and notes for the Java data structures & algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published