Skip to content

Latest commit

Β 

History

History
106 lines (76 loc) Β· 3.75 KB

File metadata and controls

106 lines (76 loc) Β· 3.75 KB

πŸ—‚οΈ Data Structures Assignment

This repository contains solutions for the Data Structures Assignment from Cairo University's Faculty of Computers and Artificial Intelligence.

πŸ“Œ Assignment Overview

This assignment consists of five problems focusing on different data structures and algorithms:

  1. πŸ“œ Iftar Invitation Manager – An OOP system to manage guest invitations
  2. πŸ”’ Polynomial Operations – Implementing polynomial calculations using pointers
  3. πŸ”— Sorted Linked List – A dynamically sorted linked list
  4. πŸ”„ Sorting Algorithms – Various sorting techniques with visualization
  5. πŸ“Š Statistical Calculation – Performing statistical operations

βš™οΈ Requirements

  • C++ programming language
  • ❌ No STL library usage
  • πŸ”„ Proper memory management
  • πŸš€ Efficient implementation

πŸ“ Problem Descriptions

1️⃣ Iftar Invitation Manager

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

2️⃣ Polynomial Operations Using Pointers

Implementation of dynamic polynomial operations:
πŸ”Ή Displaying polynomials in readable format
πŸ”Ή Computing the sum and difference of polynomials

3️⃣ Sorted Linked List

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

4️⃣ Sorting Algorithms

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

5️⃣ Statistical Calculation

A program to calculate basic statistical values:
πŸ“‰ Median – The middle value
πŸ“ˆ Maximum & Minimum – Highest & lowest numbers
βž— Mean – Average value
βž• Summation – Total sum


πŸ“‚ Repository Structure

/
β”œβ”€β”€ πŸ“œ 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

πŸ‘¨β€πŸ’» Contributors

  • Asser Ahmed Ahmed
  • Mahmoud Hosny Sayed
  • Yousef Hosni
  • Abdullah Islam Fathy
  • Mahmoud Hesham

πŸ“œ License

This project is submitted as an academic assignment for the Data Structures course at Cairo University.