-
Notifications
You must be signed in to change notification settings - Fork 0
/
tlistacalendario.h
114 lines (90 loc) · 3 KB
/
tlistacalendario.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#ifndef _TLISTAPOS_
#define _TLISTAPOS_
#include <iostream>
#include "tcalendario.h"
class TNodoCalendario{
friend class TListaPos;
friend class TListaCalendario;
private:
TCalendario c;
TNodoCalendario* siguiente;
public:
//Constructor por defecto
TNodoCalendario();
//Constructor de copia
TNodoCalendario(const TNodoCalendario&);
//Asignacion
TNodoCalendario& operator=(const TNodoCalendario&);
//Destructor
~TNodoCalendario();
};
//==========
class TListaPos{
friend class TListaCalendario;
private:
TNodoCalendario* pos;
public:
//Constructor por defecto
TListaPos();
//Constructor de copia
TListaPos(const TListaPos&);
//Asignacion
TListaPos& operator=(const TListaPos&);
//Destructor
~TListaPos();
//Igualdad
bool operator==(const TListaPos&) const;
//Desigualdad
bool operator!=(const TListaPos&) const;
//Posicion siguiente
TListaPos Siguiente() const;
//Si this vacio
bool EsVacia() const;
};
//==========
class TListaCalendario{
//Salida
friend std::ostream& operator<<(std::ostream&, const TListaCalendario&);
private:
TNodoCalendario* primero;
public:
//Constructor por defecto
TListaCalendario();
//Constructor de copia
TListaCalendario(const TListaCalendario&);
//Asignacion
TListaCalendario& operator=(const TListaCalendario&);
//Destructor
~TListaCalendario();
//Incrementar
TListaCalendario operator+(const TListaCalendario&) const;
//Decrementar
TListaCalendario operator-(const TListaCalendario&) const;
//Igualdad
bool operator==(const TListaCalendario&) const;
//Numero de calendarios
int Longitud() const;
//Si ningun calendario existe
bool EsVacia() const;
//Si esta ese calendario
bool Buscar(const TCalendario&) const;
//Primera posicion
TListaPos Primera() const;
//Ultima posicion
TListaPos Ultima() const;
//Calendario en esa posicion
TCalendario Obtener(const TListaPos&) const;
//Calendarios en ese rango, se eliminan de this
TListaCalendario ExtraerRango(int, int);
//Calendarios de this en ese rango y los calendarios de esa lista en ese otro rango
TListaCalendario SumarSubl(int, int, TListaCalendario&, int, int) const;
//Agregar ese calendario en orden
bool Insertar(const TCalendario&);
//Eliminar un calendario por su equivalente
bool Borrar(const TCalendario&);
//Eliminar calendario en esa posicion
bool Borrar(const TListaPos&);
//Eliminar calendarios con fecha menor a esa
bool Borrar(int dia, int mes, int anyo);
};
#endif