Skip to content

A collaborative Java Swing application implementing custom data structures (Binary Trees, Queues, Linked Lists) from scratch, without standard libraries. Developed as a Software Engineering project at UPG Ploiești.

Notifications You must be signed in to change notification settings

andrei-vasile-dev/Team-Project-Data-Structures-Java-ISW

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

💻 Data Structures Showcase – Java Swing Project

Software Engineering Team Project
University: Petroleum-Gas University of Ploiești (UPG)
Faculty: Letters and Sciences | Specialization: Computer Science, 3rd Year Discipline: Software Engineering


👥 Team Members & Contributors

This project was a collaborative effort. Each member was responsible for specific algorithmic modules and documentation:

  • Project Manager: Coșereanu Emanuel
  • Developer: Vasile Andrei-Daniel
  • Developer: Crăciun Elena Bianca
  • Developer: Gheorghe Valentin Marian

🧾 Project Overview

This application serves as a comprehensive suite for solving complex data structure problems using Java. A core requirement of this project was the manual implementation of dynamic data structures (Linked Lists, Queues, Stacks, and Trees) without using the standard java.util.* collection framework.

The project follows the Waterfall development model and uses a simplified Model-View-Controller (MVC) architecture to decouple the algorithmic logic from the Swing-based GUI.

⚙️ Main Modules

  1. Node Classification (Andrei): Analyzes a binary tree and classifies nodes based on their number of children (Leaf, Single-child, or Full node) using custom HashTables.
  2. Queue of Queues (Valentin): Converts a numerical matrix into a complex hierarchy of primary and secondary queues.
  3. Union & Intersection (Bianca): Performs set operations between a binary search tree and a queue, representing the results visually.
  4. Tree Paths (Emanuel): Implements a DFS-based algorithm to identify and list all possible paths from the root to the leaves of a binary tree.

🛠️ Technical Specifications

  • Language: Java (Pure implementation, no java.util.Collections).
  • Interface: Java Swing (JFC) for a robust desktop experience.
  • Paradigm: Procedural logic encapsulated in Object-Oriented structures.
  • Key Concepts: Recursion, DFS/BFS traversals, memory management via pointers/references, and custom Stack/Queue policies (LIFO/FIFO).

📸 Visual Showcase

Gallery of the application's interface and problem-solving modules:


🧩 How to Run

  1. Clone the repo:
    git clone https://github.com/andrei-vasile-dev/Team-Project-Data-Structures-Java-ISW.git
  2. Open the project in NetBeans IDE (or any Java IDE).
  3. Ensure you have JDK 21 or newer configured.
  4. Run the Main_GUI.java class to launch the dashboard.

Session: 2025-2026 | Academic Coordinator: Faculty of Letters and Sciences, UPG Ploiești

About

A collaborative Java Swing application implementing custom data structures (Binary Trees, Queues, Linked Lists) from scratch, without standard libraries. Developed as a Software Engineering project at UPG Ploiești.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published