'School - Super Data Structure' - Personal Project.

In this project, I designed a data structure with the following capabilities:

Basic Methods:

Description Time Complexity
Import data from files O(n)
Remove student/worker O(log(n))
Add new student/worker O(log(n))
Search student/worker O(1) worst case!
Print details of all workers/students (sorted alphabetically) O(n)

Statistical Methods:

Description Time Complexity
Get median GPA O(1)
Get median salary O(1)
Get average GPA O(1)
Get average salary O(1)
Get the student with the highest GPA O(1)
Get the worker with the highest salary O(1)

Other Methods:

Description Time Complexity
Set base salary for workers O(1)
Set bonus salary for tutors O(1)
Get vector of workers by type (RTTI) O(n)
Get the workers that satisfy a certain condition (default: outstanding) O(n)
Get the students that satisfy a certain condition (default: outstanding) O(n)
Get vector of students sorted according to the user's choice (default: by GPA) O(n)

#modern c++ #software design #OOP #Inheritances #polymorphism #data structures #priority queue #red–black tree #trie #vector #string #tree map #set #template #Iterators #singleton #enums #stl containers #operator overloading #RTTI #comparators #files #counting sort #factory design pattern

© Ofir Tanami, 2021.