Controlador de prueba para la plantilla Pila. La función main utiliza una plantilla de función para manipular objetos del tipo Pila< T >.
c:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include "tpila.h" //Copiar este URL http://www.mis-algoritmos.com/source-459.html y nombrarlo tpila.h
// Plantilla de función para manipular Pila< T >
template< class T >
void pruebaPila(
Pila< T > 038;laPila, // referencia hacia la Pila< T >
T valor, // valor inicial a colocarse
T incremento, // incremento para valores subsiguientes
const char *nombrePila ) // nombre del objeto Pila < T >
{
cout << "\nColocando elementos en " << nombrePila << '\n';
while ( laPila.push( valor ) ) { // éxito, true devuelto
cout << valor << ' ';
valor += incremento;
} // end while
cout << "\nLa pila esta llena. No se puede colocar " << valor
<< "\n\nSacando elementos de " << nombrePila << '\n';
while ( laPila.pop( valor ) ) // éxito, true devuelto
cout << valor << ' ';
cout << "\nLa pila esta vacia. No se puede sacar un elemento\n";
} // fin de la plantilla de función pruebaPila
int main()
{
Pila< double > pilaDouble( 5 );
Pila< int > pilaInt;
pruebaPila( pilaDouble, 1.1, 1.1, "pilaDouble" );
pruebaPila( pilaInt, 1, 1, "pilaInt" );
return 0;
} // fin de la función main
using std::cout;
using std::cin;
using std::endl;
#include "tpila.h" //Copiar este URL http://www.mis-algoritmos.com/source-459.html y nombrarlo tpila.h
// Plantilla de función para manipular Pila< T >
template< class T >
void pruebaPila(
Pila< T > 038;laPila, // referencia hacia la Pila< T >
T valor, // valor inicial a colocarse
T incremento, // incremento para valores subsiguientes
const char *nombrePila ) // nombre del objeto Pila < T >
{
cout << "\nColocando elementos en " << nombrePila << '\n';
while ( laPila.push( valor ) ) { // éxito, true devuelto
cout << valor << ' ';
valor += incremento;
} // end while
cout << "\nLa pila esta llena. No se puede colocar " << valor
<< "\n\nSacando elementos de " << nombrePila << '\n';
while ( laPila.pop( valor ) ) // éxito, true devuelto
cout << valor << ' ';
cout << "\nLa pila esta vacia. No se puede sacar un elemento\n";
} // fin de la plantilla de función pruebaPila
int main()
{
Pila< double > pilaDouble( 5 );
Pila< int > pilaInt;
pruebaPila( pilaDouble, 1.1, 1.1, "pilaDouble" );
pruebaPila( pilaInt, 1, 1, "pilaInt" );
return 0;
} // fin de la función main