Data Structures and Algorithms in Java

This is a collection of my implementations of various Data Structures and Algorithms in Java. These implementations are intended to help me learn and practice the concepts of Data Structures and Algorithms.

Table of Contents

  • Data Structures
  • Algorithms
  • Usage
  • Contributing

Data Structures

The following data structures are currently implemented in this repo:

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

and many more(please list out names here by editing)

Each data structure has its own folder containing its implementation, along with relevant tests.

Algorithms

The following algorithms are currently implemented in this repo:

Sorting Algorithms:

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Quick Sort
  • Searching Algorithms:
  • Linear Search
  • Binary Search Each algorithm has its own folder containing its implementation, along with relevant tests.

Usage

To use any of the implementations, clone this repo and import the relevant Java files into your project. Each implementation is self-contained in a single Java file, so it should be easy to use.

To run the tests for any implementation, navigate to its folder and run the relevant test file. For example, to run the tests for the Linked List implementation, navigate to the "linked-list" folder and run the "LinkedListTest.java" file.

Contributing

I welcome contributions to this repo! If you find a bug or have an improvement to suggest, please feel free to open an issue or submit a pull request.