Plantilla de clase Pila
¿Has encontrado un error? ¿Tienes la solución? Deja tu correción ;-)
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML.
Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos
fueron realizados por estudiante con únicamente conocimiento básico del lenguaje, no de programación.
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 | #ifndef TPILA1_H
#define TPILA1_H
template< class T >
class Pila {public:
Pila( int = 10 ); // constructor predeterminado (el tamaño de la pila es 10)
~Pila() { delete [] ptrPila; } // destructor
bool push( const T& ); // coloca un elemento en la pila
bool pop( T& ); // saca un elemento de la pilaprivate:
int tamanio; // # de elementos en la pila
int cima; // ubicación del elemento cima
T *ptrPila; // apuntador a la pila
bool estaVacia() const { return cima == -1; } // funciones de
bool estaLlena() const { return cima == tamanio - 1; } // utilidad
}; // fin de la plantilla de clase Pila
// Constructor con un tamaño predeterminado de 10template< class T >
Pila< T >::Pila( int tam )
{
tamanio = tam > 0 ? tam : 10;
cima = -1; // La Pila inicialmente está vacÃÂa ptrPila = new T[ tamanio ]; // asigna espacio para los elementos
} // fin del constructor Pila
// Coloca un elemento en la pila
// devuelve 1 si tiene éxito, de lo contrario devuelve 0 template< class T >
bool Pila< T >::push( const T &colocaValor )
{
if ( !estaLlena() ) {
ptrPila[ ++cima ] = colocaValor; // coloca el elemento en la Pila return true; // si la colocación fue exitosa
} // end if
return false; // si la colocación no fue exitosa
} // fin de la plantilla de función push
// Saca un elemento de la pila
template< class T >
bool Pila< T >::pop( T &sacaValor )
{
if ( !estaVacia() ) { sacaValor = ptrPila[ cima-- ]; // saca el elemento de la Pila
return true; // si la eliminación fue exitosa
} // end if
return false; // si la eliminación no fue exitosa
} // fin de la plantilla de función pop
#endif |
Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C <code lang="c">Código en C</code>
- Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.
De esta manera el código coloreas el código.
Deja un comentario