University Year 1 | Semester 2
A comprehensive collection of fundamental data structures and algorithmic implementations in Java. Features custom-built Abstract Data Types (ADTs), including dynamic arrays, multiple linked list architectures, and dual-implementation stacks and queues.
This repository serves as a technical archive of my progression through foundational Computer Science principles. It tracks the journey from initial Java syntax validation to the engineering of complex, node-based architectures and memory-efficient data management systems.
- Welcome Prototype: An introductory implementation used to establish JDK configuration and master basic Java class structure and console output.
- Array Abstract Data Type: Developed a custom array-based structure featuring manual indexing, boundary validation, and element manipulation logic.
- Node-Based Logic: Implemented manual pointer-style logic to connect and traverse independent
ListNodeobjects. - Architecture Variations: Includes Standard, Circular, and Doubly Linked Lists to demonstrate an understanding of bidirectional navigation and circular traversal logic.
- Dual-Implementation Strategy: Developed both Array-based and List-based versions of Stack and Queue structures to explore the performance trade-offs between contiguous and dynamic memory allocation.
- State Protocols: Managed strict LIFO (Last-In-First-Out) and FIFO (First-In-First-Out) access rules.
Technical accuracy is maintained through JUnit unit testing. These test suites validate:
- Edge Cases: Verifying structure behaviour during interactions with empty or single-node lists.
- Positional Logic: Validating insertions and deletions at specific indices within dynamic structures.
- Language: Java
- Tools: NetBeans, JUnit
- Methodology: Abstract Data Type (ADT) Design