Plantilla de clase Pila
#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 pila private: 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 10 template< 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
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 personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)