Skip to content

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. Developed for University Year 1, Semester 2.

License

Notifications You must be signed in to change notification settings

MylesColeman/Java-Data-Structures

Repository files navigation

Java: Data Structures

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.

🔗 View the full technical breakdown on my Portfolio

🕹️ Project Overview

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.

📂 Repository Contents

00. Language Foundations

  • Welcome Prototype: An introductory implementation used to establish JDK configuration and master basic Java class structure and console output.

01. Array ADT

  • Array Abstract Data Type: Developed a custom array-based structure featuring manual indexing, boundary validation, and element manipulation logic.

02. Linked List Architectures

  • Node-Based Logic: Implemented manual pointer-style logic to connect and traverse independent ListNode objects.
  • Architecture Variations: Includes Standard, Circular, and Doubly Linked Lists to demonstrate an understanding of bidirectional navigation and circular traversal logic.

03. Stacks and Queues

  • 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.

🧪 Testing & Validation

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.

💻 Technical Specs

  • Language: Java
  • Tools: NetBeans, JUnit
  • Methodology: Abstract Data Type (ADT) Design

About

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. Developed for University Year 1, Semester 2.

Topics

Resources

License

Stars

Watchers

Forks

Languages