[C con Clase] Implementar una pila

Pamela Dellepiane pdellepiane en gmail.com
Sab Jun 23 03:02:26 CEST 2007


Hola Steven. Gracias por tu respuesta nuevamente. Tal vez formule mal
la pregunta, lo que quería saber era si la pila de STL (o alguna de
otra implementacon) soporta la interface/operaciones que he puesto en
mi .h.

El 22/06/07, Steven Davidson <steven en conclase.net> escribió:
> Hola Pamela,
>
> El pasado 2007-06-22 03:51:37, Pato escribió:
>
> P> hola!! como les dije, estoy aprendiendo y para eso escribi el
> P> siguiente encabezado para una pila de personas. Me gustaria saber si
> P> tiene sentido que yo misma haga la siguiente implementacion cuando se
> P> podria utilizar la STL no? (no conozco mucho la STL). o sea, podria
> P> utilizar la STL o conocen alguna otra librería que me provea las
> P> siguientes operaciones?
>
> Si sólo te interesa usar pilas, sin mayores preocupaciones, entonces sí, aconsejo usar las STL. Por ejemplo,
>
> #include <stack>
> ...
> int main()
> {
>   stack< int > pilaInt;
>
>   pilaInt.push( 10 );
>   pilaInt.push( 15 );
>   pilaInt.push( -23 );
>   pilaInt.push( 49 );
>   pilaInt.push( 81 );
>
>   pilaInt.top() = -81;  // Modificamos el primer elemento
>
>   cout << "Cantidad total = " << pilaInt.size() << endl;
>   while( !pilaInt.empty() )
>   {
>     cout << pilaInt.top() << ' ';
>     pilaInt.pop();
>   }
>   cout << endl;
>
>   vector< float > listaFloat;
>   listaFloat.push_back( 10.6 );  // Parecido a una pila
>   listaFloat.push_back( 15.e-3 );
>   listaFloat.push_back( -23.00938e106 );
>
>   // Creamos una pila a partir de un "vector"
>   stack< float, vector<float> > pilaFloat( listaFloat );
>
>   // Incluso una pila de pilas
>   stack< stack< float, vector<float> > > pilaPilaFloat;
>   pilaPilaFloat.push( pilaFloat );
>
>   return 0;
> }
>
> Las funciones miembros son bastante simples:
> empty()
> pop()
> push()
> size()
> top()
>
> También existen varios operadores relacionales para objetos de tipo 'stack<>'.
>
> Seguramente, puedes encontrar documentación acerca de ésta y otras plantillas estándares de ANSI C++ en internet. Por ejemplo,
> http://www.cppreference.com/cppstack/index.html
> http://www.roguewave.com/support/docs/sourcepro/edition9/html/stdlibref/stack-h.html
>
> Si por otro lado quieres algún otro comportamiento que la definición estánar de la pila no tiene, entonces podrías implementar tu propia clase.
>
>
> Espero que esto te sirva.
>
> Steven
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>




Más información sobre la lista de distribución Cconclase