-
Notifications
You must be signed in to change notification settings - Fork 0
/
agenda.h
44 lines (37 loc) · 1.54 KB
/
agenda.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* INF3105 - Structures de données et algorithmes *
* UQAM / Département d'informatique *
* Été 2022 / TP4 *
* Eric Beaudry - beaudry.eric@uqam.ca - ericbeaudry.ca *
* @author Besma Jabri *
* Code permanent : JABB71560008 *
* @author Othmane Azzouzi *
* Code permanent : AZZO27129703 */
#if !defined(__AGENDA_H__)
#define __AGENDA_H__
#include <string>
#include "coordonnees.h"
#include "dateheure.h"
#include "arbremap.h"
#include "ArbreAVLIntervalle.h"
class Agenda{
public:
void creer(const std::string& id, const Coordonnees& c, int puissance);
ArbreMap<std::string, int> trouver(const Coordonnees& c, int rayon=0, int puissancemin=0) const;
DateHeure reserverI(const std::string& id, DateHeure date, int duree);
DateHeure reserverC(const Coordonnees& c, int rayon, int puissancemin, DateHeure datemin, int duree, std::string& borneid);
DateHeure chercherDateDisponible(const std::string& id, DateHeure date, int duree);
DateHeure chercherDateDisponibleReserverC(const std::string& id, DateHeure date, int duree);
private:
struct DonneesBornes
{
int puissance;
Coordonnees coor;
friend class Agenda;
friend class main;
};
public:
ArbreMap<std::string,DonneesBornes> bornes;
ArbreMap<std::string, ArbreMap<int,ArbreAVLIntervalle<int>>> dateReservee;
friend class DateHeure;
};
#endif