'School - Super Data Structure' - Personal Project.
In this project, I designed a data structure with the following capabilities:
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) |
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) |
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.