Skip to content

This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a reference and learning resource for understanding fundamental concepts in computer science.

License

Notifications You must be signed in to change notification settings

JeninSutradhar/JAVA-DataStructures-Algorithms

Repository files navigation

Data Structures and Algorithms

This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a reference and learning resource for understanding fundamental concepts in computer science.

GitHub repo size

Contents

  1. Introduction
  2. Data Structures
  3. Algorithms
  4. Contributing
  5. License
  6. Project Structure

Introduction

Understanding data structures and algorithms is essential for every software engineer and computer scientist. This repository aims to provide implementations of commonly used data structures and algorithms in a variety of programming languages, along with explanations and examples.

Data Structures

The following data structures are implemented in this repository:

  • Linked List
  • Stack
  • Queue
  • Binary Tree
  • Binary Search Tree
  • Graph
  • Hash Table
  • Heap
  • Trees
  • ...

Each data structure is organized into its own directory and includes the implementation code, along with explanations and examples of usage.

Algorithms

The following algorithms are implemented in this repository:

  • Sorting Algorithms (Bubble Sort, Insertion Sort, Merge Sort, Quick Sort, etc.)
  • Searching Algorithms (Linear Search, Binary Search, Depth-First Search, Breadth-First Search, etc.)
  • Dynamic Programming Algorithms
  • Graph Algorithms (Dijkstra's Algorithm, Prim's Algorithm, Kruskal's Algorithm, etc.)
  • String Algorithms (String Matching, String Parsing, etc.)
  • ...

Project Structure

.
├── Algorithms
│   ├── Searching
│   │   ├── BinarySearch.java
│   │   ├── BreadthFirstSearch
│   │   │   ├── Graph.java
│   │   │   ├── Main.java
│   │   │   └── Node.java
│   │   ├── DepthFirstSearch
│   │   │   ├── Graph.java
│   │   │   ├── Main.java
│   │   │   └── Node.java
│   │   ├── InterpolationSearch.java
│   │   ├── LinearSearch.java
│   │   └── SimpleBinarySearch.java
│   └── Sorting
│       ├── BubbleSort.java
│       ├── HeapSort.java
│       ├── InsertionSort.java
│       ├── MergeSort.java
│       ├── PigeonholeSort.java
│       ├── QuickSort.java
│       ├── Recursion.java
│       ├── SelectionSort.java
│       └── TournamentSort.java
├── DataStructures
│   ├── DynamicArray.java
│   ├── Graph
│   │   ├── AdjecencyList
│   │   │   ├── Graph.java
│   │   │   ├── Main.java
│   │   │   └── Node.java
│   │   └── AdjecencyMatrix
│   │       ├── Graph.java
│   │       ├── Main.java
│   │       └── Node.java
│   ├── LinkedLists.java
│   ├── PriorityQueues.java
│   ├── Queues.java
│   ├── Stacks.java
│   ├── Trees
│   │   └── BinarySearchTree
│   │       ├── Main.java
│   │       ├── Node.java
│   │       └── binarySearchTree.java
│   └── hashtable.java
├── LICENSE
├── Misc
│   ├── LinkedListMethod2.java
│   ├── LinkedvsArrayList.java
│   ├── PigeonholeSort.java
│   └── TournamentSort.java
├── README.md
├── SECURITY.md
└── TimeComplexity & Big(O)
    ├── Complexity.java
    └── cheatsheet.png

License

This project is licensed under the MIT License.

Contributing

Contributions are welcome! If you'd like to contribute to this repository, feel free to submit a pull request with your changes. Please ensure that your code follows the existing style and conventions, and include appropriate documentation and test cases.

About

This repository contains implementations of various data structures and algorithms in different programming languages. It serves as a reference and learning resource for understanding fundamental concepts in computer science.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages