Skip to content

Abdo-Islam/DataStructure

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗂️ 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors