-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathListaSolucion.h
executable file
·166 lines (134 loc) · 5.23 KB
/
ListaSolucion.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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
//---------------------------------------------------------------------------
#ifndef ListaSolucionH
#define ListaSolucionH
//---------------------------------------------------------------------------
/*-------------------------------------------------------------------------*/
// CLASE UNASOLUCION
/*-------------------------------------------------------------------------*/
class UnaSolucion
{
private:
int IDVA; // Identificador de la variable solucion
String IDVAX; // Identifcador con X + mas identificador
String Valor; // Valor de la variable
public:
UnaSolucion()
{
IDVA=0;
IDVAX="";
Valor="";
}
UnaSolucion(int ID,String Val)
{
IDVA=ID;
IDVAX="X"+IntToStr(IDVA);
Valor=Val;
}
~UnaSolucion() {}
/*-------------------------------------------------------------------------*/
// Constructor y desctructor de la UNASOLUCION
/*-------------------------------------------------------------------------*/
String getIdvax() { return IDVAX;}
// devuelve in identifcador(variable) en forma de String (Ej: "X1","X3")
String getValor() { return Valor;}
// devuelve el valor de la variable
int getIDVA() { return IDVA;}
// devuelve el identicador en int (Ej: 1,2,4)
bool setValor(String valor) {Valor=valor;return true;}
// setea el valor de la solucion
// deuvelve el identicador en int (Ej: 1,2,4)
bool getAlmacenavalor()
{
if (IDVA==0) return false;
return true;
}
/* Funcion que sirve para saber si acaso la variable es valida como solucion
si es valida es true, sino es false*/
};
/*-------------------------------------------------------------------------*/
// FIN CLASE UNASOLUCION
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
// CLASE ElEMENTOSOLUCIONES
/*-------------------------------------------------------------------------*/
class ElementoSoluciones
{
private:
UnaSolucion Primera;
UnaSolucion Segunda;
UnaSolucion Tercera;
/* Como la solucion puede tener 3 valores ( es decir , X=? Y=? Z=?)*/
public:
ElementoSoluciones *Siguiente;
//apuntador usado para formar una lista enlazada
ElementoSoluciones()
{
Primera = UnaSolucion();
Segunda = UnaSolucion();
Tercera = UnaSolucion();
Siguiente=NULL;
}
ElementoSoluciones(UnaSolucion P1,UnaSolucion P2,UnaSolucion P3)
{
Primera=P1;
Segunda=P2;
Tercera=P3;
Siguiente=NULL;
}
~ElementoSoluciones() {}
/*-------------------------------------------------------------------------*/
// Constructor y desctructor de la ELEMENTOSOLUCIONES
/*-------------------------------------------------------------------------*/
UnaSolucion getPrimera() {return Primera;}
UnaSolucion getSegunda() {return Segunda;}
UnaSolucion getTercera() {return Tercera;}
// Retorna cada una soluciones Pedidas
};
/*-------------------------------------------------------------------------*/
// FIN CLASE ElEMENTOSOLUCIONES
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
// CLASE LISTASOLUCION
/*-------------------------------------------------------------------------*/
class ListaSolucion
{
private:
ElementoSoluciones *Primera;
ElementoSoluciones *Ultima;
//apuntador al primero y al último elemento de la lista
int Total;
//indica el numero de soluciones en la lista
public:
ListaSolucion()
{
Primera=Ultima=NULL;
Total=0;
}
~ListaSolucion();
/*-------------------------------------------------------------------------*/
// Constructor y desctructor de la LISTASOLUCION
/*-------------------------------------------------------------------------*/
bool Agregasoluciones(ElementoSoluciones*);
/* Agrega una solucion ( que puede ser un elemento 3 soluciones )
si agrega con satisfacion devuelve TRUE,sino FALSE
(NOTA: la grega al final de la lista) */
int getNumerosdeSoluciones() { return Total;}
/* devuelve el numero total de grupo de soluciones encontradas
Por Ejejmplo (X=TOM Y=JUAN Z=PEDRO
X=HUMBERTO Y=JUAN Z=PEPE)
devolveria 2 */
ElementoSoluciones *getSolucion(int indice);
/* devuelve un grupo de soluciones dadando el indice a encontrar
en la fila. Sino la encuntra devuelve NULL
Ej: (X=TOM Y=JUAN Z=PEDRO
X=HUMBERTO Y=JUAN Z=PEPE)
devolveria 2
Si pregunto con inidice 2 devuelve (X=HUMBERTO Y=JUAN Z=PEPE)*/
bool Busca_solucion(ElementoSoluciones *);
/* devuelve true si la solucion esta ya almacenada
devuelve false sino esta la solucion*/
};
/*-------------------------------------------------------------------------*/
// FIN CLASE LISTASOLUCION
/*-------------------------------------------------------------------------*/
#endif