This repository contains solutions for the Data Structures Assignment from Cairo University's Faculty of Computers and Artificial Intelligence.
This assignment consists of five problems focusing on different data structures and algorithms:
- 📜 Iftar Invitation Manager – An OOP system to manage guest invitations
- 🔢 Polynomial Operations – Implementing polynomial calculations using pointers
- 🔗 Sorted Linked List – A dynamically sorted linked list
- 🔄 Sorting Algorithms – Various sorting techniques with visualization
- 📊 Statistical Calculation – Performing statistical operations
- C++ programming language
- ❌ No STL library usage
- 🔄 Proper memory management
- 🚀 Efficient implementation
A system to manage guest invitations using OOP principles:
✅ Guest class to store invitee details
✅ IftarManager class to handle multiple invitations
✅ Functions to add guests, display all guests, update a guest's invitation, and send reminders to all the guests
✅ Sorting guests by invitation date
Implementation of dynamic polynomial operations:
🔹 Displaying polynomials in readable format
🔹 Computing the sum and difference of polynomials
A linked list that maintains elements in sorted order:
🔹 Insertion sort logic for automatic ordering
🔹 Element deletion by index
🔹 Operator overloading for ease of use
🔹 Ensures proper memory management
A system that implements nine sorting algorithms with visualization:
| Algorithm | Supported Data Types | Special Notes |
|---|---|---|
| 🟢 Insertion Sort | ✅ All types | Simple, efficient for small lists |
| 🟡 Selection Sort | ✅ All types | Finds the smallest element iteratively |
| 🔴 Bubble Sort | ✅ All types | Swaps adjacent elements iteratively |
| 🟣 Shell Sort | ✅ All types | Optimized version of insertion sort |
| 🔵 Merge Sort | ✅ All types | Divide and conquer approach |
| ⚫ Quick Sort | ✅ All types | Highly efficient |
| 🟠 Count Sort | 🔢 Integers only | Uses counting array |
| 🟤 Radix Sort | 🔢 Integers only | Sorts based on digit places |
| 🔶 Bucket Sort | 🔢 Floats/Integers | Uses multiple buckets |
🔹 Interactive menu for choosing an algorithm
🔹 Template-based implementation for flexibility
🔹 Execution time measurement for performance tracking
A program to calculate basic statistical values:
📉 Median – The middle value
📈 Maximum & Minimum – Highest & lowest numbers
➗ Mean – Average value
➕ Summation – Total sum
/
├── 📜 Problem1.cpp # Iftar Invitation Manager
├── 🔢 Problem2.cpp # Polynomial Operations
├── 🔗 Problem3.cpp # Sorted Linked List
├── 🔄 Problem4.cpp # Sorting Algorithms
├── 📊 Problem5.cpp # Statistical Calculation
├── 🚫 .gitignore # Git ignore file
└── 📖 README.md # This file
- Asser Ahmed Ahmed
- Mahmoud Hosny Sayed
- Yousef Hosni
- Abdullah Islam Fathy
- Mahmoud Hesham
This project is submitted as an academic assignment for the Data Structures course at Cairo University.