Skip to content

This repository is a comprehensive Java resource covering essential data structures and algorithms. It provides practical insights for developers to enhance proficiency, including solutions to product-based company interview questions, facilitating effective interview preparation.

License

Notifications You must be signed in to change notification settings

saurabh-maurya1/Practise-DSA-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Data Structures and Algorithms

Welcome to the Java Data Structures and Algorithms repository! This project is a comprehensive implementation of various Data Structures and Algorithms in Java, covering both fundamental concepts and advanced techniques.

Table of Contents

  1. Introduction
  2. Data Structures
  3. Algorithms
  4. Advanced Data Structures
  5. Usage
  6. Contributing
  7. License

Introduction

This repository serves as a resource for learning and implementing Data Structures and Algorithms in Java. Whether you are a beginner or an experienced developer looking to refresh your knowledge, this project provides examples and explanations for each topic.

Data Structures

Arrays

  • Basic array operations and manipulations.

Linked Lists

  • Singly linked lists, doubly linked lists, and circular linked lists.

Stacks

  • Implementation of stacks and common operations.

Queues

  • Different types of queues, including priority queues.

Trees

  • Binary trees, binary search trees (BST), and AVL trees.

Graphs

  • Representation of graphs and common algorithms like DFS and BFS.

Hash Tables

  • Basic hash table implementation and collision handling.

Heaps

  • Min and max heaps and heap sort.

Algorithms

Sorting

  • Bubble sort, selection sort, merge sort, quicksort, etc.

Searching

  • Linear search, binary search, and variations.

Recursion

  • Understanding and implementing recursive algorithms.

Dynamic Programming

  • Solving problems using dynamic programming techniques.

Greedy Algorithms

  • Solving optimization problems using greedy strategies.

Backtracking

  • Solving problems by exploring all possible solutions.

Graph Algorithms

  • Dijkstra's algorithm, Kruskal's algorithm, etc.

Advanced Data Structures

Trie

  • Trie data structure for efficient string manipulation.

Segment Tree

  • Building and querying segment trees.

Disjoint Set Union (Union-Find)

  • Efficiently merging and finding disjoint sets.

Binary Indexed Tree (Fenwick Tree)

  • Handling range queries and updates efficiently.

Usage

Clone the repository and explore the Java implementations of various Data Structures and Algorithms. Each folder contains detailed explanations and examples.

Contributing

Feel free to contribute by adding new implementations, optimizing existing code, or providing clearer explanations. Follow the contribution guidelines to get started.

License

This project is licensed under the MIT License. License: MIT

About

This repository is a comprehensive Java resource covering essential data structures and algorithms. It provides practical insights for developers to enhance proficiency, including solutions to product-based company interview questions, facilitating effective interview preparation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages