This repository contains my journey of learning Java while exploring key data structures and algorithms. The goal is to implement and understand commonly used data structures and algorithms and how they can be applied to solve problems efficiently.
src/algoithms: This folder contains implementations of various algorithms.src/data_structures: This folder contains implementations for various common data structures.src/utils: This folder is reserved for utility classes and helper methods that might be shared across data structures and algorithms.tests: This folder will be used for unit tests to ensure that the data structures and algorithms are functioning as expected.run.sh: A shell script to compile and run the Java files in the project.
Below are all the implementations completed so far. I will continue to update this list as I progress. Cheers!
- Arrays
- Singly Linked List
- Doubly Linked List
- Stack
- Queue (impl using Array)
- Queue (impl using Linked List)
- Priority Queue (impl using Linked List)
- Binary Tree
- To be added
- Understanding how different data structures work under the hood
- Learning algorithmic techniques and how to apply them
- Writing clean, modular, and efficient code in Java
- Adding more algorithms (searching, sorting, dynamic programming, etc.)
- Implementing more data structures (queues, heaps, trees, graphs)
- Writing comprehensive unit tests
- Enhancing documentation