This repository is a collection of Java implementations for core data structures, algorithms, and recursion exercises.
Sorting algorithm implementations with standalone demo programs.
Bubble_Sort.java- bubble sortInsertion_Sort.java- insertion sortQuick_Sort.java- quick sortSelection_Sort.java- selection sort
Practice code for working with Java objects and a linked-list implementation located under src/LinkedList/.
Main.java- IntelliJ starter classsrc/LinkedList/LinkedList.java- linked list implementationsrc/LinkedList/Node.java- node definitionsrc/LinkedList/oopLinkedList.java- object-oriented linked list example
Fixed-size queue implemented with an array.
ArrayQueue.java- array-backed queue implementationMain.java- demo entry point
Fixed-size stack implemented with an array.
ArrayStack.java- array-backed stack implementationMain.java- demo entry point
Binary search tree implementation with insertion and traversal support.
BST.java- tree operationsTreeNode.java- node structureMain.java- demo entry point
Generic dynamic array implementation.
ArrayList.java- custom generic listMain.java- demo entry pointtest.java- supporting test file
Circular singly linked list implementation.
CircularLinkedList.java- list operationsCircularNode.java- node structureMain.java- demo entry point
Doubly linked list implementation with forward and backward links.
DoublyLinkedList.java- list operationsDoublyNode.java- node structureMain.java- demo entry point
Singly linked list implementation with insertion, deletion, and display operations.
LinkedList.java- list operationsNode.java- node structureMain.java- demo entry point
Queue implemented with linked nodes.
Queue.java- queue operationsQueueNode.java- node structureMain.java- demo entry point
Stack implemented with linked nodes.
Stack.java- stack operationsStackNode.java- node structureMain.java- demo entry point
Recursive function examples.
Main.java- recursion demos such as sum, factorial, and Fibonacci
JAVA-DSA-PROJECTS/
├── Algorithms/
├── ArrayOfObjects/
├── ArrayQueueProject/
├── ArrayStackProject/
├── BinarySearchTree/
├── CustomArrayList/
├── CustomCircularLinkedList/
├── CustomDoublyLinkedList/
├── CustomLinkedList/
├── LinkedListQueueProject/
├── LinkedListStackProject/
└── Recursions/
Each project keeps its code inside src/, and most folders include a Main.java file for quick execution from the IDE.
Contributions are welcome. Supported contribution types:
- Bug fixes
- New algorithms and data structure implementations
- Code improvements and refactoring
- Documentation and examples
- Additional test cases
To contribute, fork the repository, make your changes on a feature branch, and submit a pull request with a clear description of the changes.