Skip to content

Java DSA Library is a comprehensive collection of data structures and algorithms implemented in Java. This library is designed for both educational purposes and practical use, providing easy-to-understand code for common data structures like arrays, linked lists, stacks, queues, trees, heaps,

Notifications You must be signed in to change notification settings

harshjoshi1312/JAVA-DSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏆 Java DSA Library

Welcome to the Java DSA (Data Structures and Algorithms) Library! This repository offers comprehensive and efficient implementations of essential data structures and algorithms in Java. It's perfect for both educational purposes and real-world applications. Whether you're a student aiming to master DSA or a developer looking to integrate these concepts into your projects, this library is your ideal resource.

📚 Table of Contents

✨ Features

📦 Data Structures

This library provides implementations for the following data structures:

  • Arrays: Static and dynamic array implementations.
  • Linked Lists: Singly, doubly, and circular linked lists.
  • Stacks: Stack implementation with standard operations (push, pop, peek).
  • Queues: Regular queues and double-ended queues (Deque).
  • Trees: Binary trees, binary search trees (BST), AVL trees, and more.
  • Heaps: Min-Heap and Max-Heap for priority queue operations.
  • Graphs: Implementations using adjacency lists and adjacency matrices.

⚙️ Algorithms

The library features a variety of algorithms, including:

  • Sorting Algorithms:
    • Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort, Heap Sort.
  • Searching Algorithms:
    • Linear Search, Binary Search.
  • Graph Algorithms:
    • Breadth-First Search (BFS), Depth-First Search (DFS), Dijkstra's Algorithm, A* Algorithm.
  • Dynamic Programming:
    • Knapsack Problem, Longest Common Subsequence.
  • Recursion Examples: Various problems demonstrating the use of recursion.

🚀 Getting Started

🛠️ Prerequisites

To use this library, make sure you have the following software installed:

📥 Installation

Follow these steps to set up the library on your local machine:

🤝 Contributing

We welcome contributions to the Java DSA Library! Whether it's fixing bugs, adding new features, or improving documentation, your contributions are greatly appreciated. To contribute, please follow these steps:

  1. Fork the Repository: Click the "Fork" button at the top-right corner of this page to create a copy of this repository under your GitHub account.

  2. Clone Your Fork: Clone your fork to your local machine using the following command:

    git clone https://github.com/harshjoshi1312/java-dsa.git
    cd java-dsa
  3. Create a New Branch: Create a new branch for your feature or bug fix:

    git checkout -b feature/your-feature-name
  4. Make Changes: Make your changes in the new branch.

  5. Commit Your Changes: Commit your changes with a descriptive commit message:

    git commit -m "Add your descriptive message here"
  6. Push to Your Fork: Push your changes to your fork:

    git push origin feature/your-feature-name
  7. Open a Pull Request: Go to the original repository on GitHub, and click the "New Pull Request" button to open a pull request for your changes.

Please ensure your code adheres to the existing style conventions and passes all tests. For large changes, please open an issue first to discuss what you would like to change.

📚 Learning Resources

Expand your understanding of data structures and algorithms with these resources:

Books

  • Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein - A comprehensive textbook often referred to as the "bible" of algorithms.
  • Data Structures and Algorithms in Java by Robert Lafore - A great book for Java developers to understand DSA concepts.

Online Courses

Tutorials

🔗 Practice Resources

Test and hone your DSA skills using these platforms:

Coding Platforms

  • LeetCode: A popular platform for practicing coding problems, especially for interview preparation.
  • HackerRank: Offers a variety of challenges across different domains and difficulty levels.
  • GeeksforGeeks Practice: A platform dedicated to practicing coding problems with varying difficulty.

Challenges

  • Project Euler: A collection of challenging mathematical/computer programming problems.
  • Codewars: A platform that offers coding challenges for different skill levels.

📝 License

This project is licensed under the MIT License. You can freely use, modify, and distribute the code. See the LICENSE file for more details.

📧 Contact

For any questions, suggestions, or collaboration requests, feel free to reach out:

We look forward to your feedback and contributions!

Happy Coding! 🚀

About

Java DSA Library is a comprehensive collection of data structures and algorithms implemented in Java. This library is designed for both educational purposes and practical use, providing easy-to-understand code for common data structures like arrays, linked lists, stacks, queues, trees, heaps,

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages