This project was developed for the Data Structures course.It is a comprehensive hospital management application designed to demonstrate the practical application of various data structures in a real-world scenario.
- Hash Tables: Used for storing doctor and patient records to achieve an average search time complexity of O(1). Separate chaining is used for collision resolution to maintain flexibility.
- Priority Queues (Max Heap): Implemented in the Emergency Room to prioritize patients based on urgency levels (1-10) rather than a simple FIFO principle.
- Stacks: Utilized for "Undo" operations, following the LIFO (Last-In, First-Out) principle to revert the most recent actions.
- General Trees: Used to model the hierarchical relationship between the Hospital (root), Departments (intermediate nodes), and Doctors (leaf nodes).
- Binary Search Trees: Employed for searching patients or doctors by name to keep data sorted and searches efficient.
- Linked Lists: Used to maintain chronological patient visit records.
The Emergency Department's enqueue and dequeue operations have been specifically analyzed:
- Insertion/Removal: Proportional to the height of the tree, resulting in a time complexity of O(log N).
- Performance:Performance tests with 1,000 emergency patients showed an average execution time of 12.7 milliseconds.
Custom ID Generation: Unique IDs for doctors and patients are generated using my Student ID (230315031) as a prefix (e.g., Doctor IDs start with 3031, Patient IDs start with 5031). Logical Deletion: Instead of hard-deleting records from queues, an isActive or isCancelled flag is used to preserve queue positions during undo operations.
- Developer: Melda Güngör
- Institution: Manisa Celal Bayar University
- Project Type: This is an individual term project designed, implemented, and tested independently to demonstrate core competency in data structures and algorithmic efficiency.
- Ownership Verification: The integration of my student ID (230315031) into the core logic of the system (ID generation) serves as a unique identifier of my original work.