Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Clase Aleph::ArrayStack< T >

#include <tpl_arrayStack.H>

Métodos públicos

 ArrayStack (size_t dim=8)
 
 ArrayStack (const ArrayStack &s)
 
 ArrayStack (ArrayStack &&s)
 
ArrayStackoperator= (const ArrayStack &s)
 
void swap (ArrayStack &s)
 
ArrayStackoperator= (ArrayStack &&s)
 
T & push (const T &data) throw (std::exception, std::overflow_error)
 
T & push (T &&data) throw (std::exception, std::overflow_error)
 
T & pushn (const size_t &n=1) throw (std::exception, std::overflow_error)
 
pop () throw (std::exception, std::underflow_error)
 
popn (const int &n) throw (std::exception, std::underflow_error)
 
T & top () throw (std::exception,std::underflow_error)
 retorna una referencia al elemento situado en el tope de la pila.
 
T & base ()
 
const T & top () const throw (std::exception,std::underflow_error)
 
T & top (const int &i) throw (std::exception, std::underflow_error)
 
const T & top (const int &i) const throw (std::exception, std::underflow_error)
 
void empty ()
 Vacía todos los elementos de la pila.
 
bool is_empty () const
 Retorna true si la pila está vacía.
 
const size_t & size () const
 Retorna el número de elementos que contiene la pila.
 
const size_t & capacity () const
 
template<class Operation >
bool traverse (Operation &operation)
 
template<class Operation >
bool traverse (Operation &operation) const
 
template<class Operation >
bool traverse (Operation &&operation=Operation()) const
 
template<class Operation >
bool traverse (Operation &&operation=Operation())
 
 Functional_Methods (T)
 
 Generic_Items (T)
 

Descripción detallada

template<typename T>
class Aleph::ArrayStack< T >

Pila implantada con arreglos estáticos y verificación de número de elementos.

ArrayStack<T> instrumenta una pila de elementos de tipo T con una capacidad máxima de dim elementos. Para este tipo, todas las operaciones efectúan verificación acerca del número de elementos y excepciones son disparadas si la pila se excede o se intenta consultar o eliminar de una pila vacía.

Una pila instrumentada mediante un arreglo es mucho más rápida que una instrumentada con listas enlazadas.

El arreglo interno es estático, lo que ahorra llamadas al manejador de memoria, pero que hace su uso delicado a medida que la cantidad de elementos es mayor. Por lo general debe ser utilizada para pilas pequeñas.

Parámetros
Ttipo de elemento que alberga la pila. equivalente a la dimensión del arreglo.
dimla dimensión de arreglo interno.
Ver también
FixedStack DynListStack
Nota
Si se tiene la certitud de la correctitud, entonces úsese el tipo FixedStack, que es más rápido.

Documentación de las funciones miembro

template<typename T>
T Aleph::ArrayStack< T >::pop ( )
throw (std::exception,
std::underflow_error
)
inline

Saca un elemento de la pila.

Extrae el elemento situado en el tope de la pila.

Devuelve
copia del elemento sacado de la pila.
Excepciones
underflow_errorsi la pila está vacía

Referenciado por Aleph::inOrderStack(), Aleph::postOrderStack(), Aleph::preOrderStack() y Aleph::simple_preOrderStack().

+ Gráfico de llamadas a esta función:

template<typename T>
T Aleph::ArrayStack< T >::popn ( const int &  n)
throw (std::exception,
std::underflow_error
)
inline

Saca n elementos de la pila.

popn(n) saca los n elementos a partir del tope.

La operación toma tiempo constante.

Parámetros
[in]nnúmero de elementos a sacar.
Devuelve
copia del último elemento eliminado.
Excepciones
underflow_errorsi la pila está vacía.
template<typename T>
T& Aleph::ArrayStack< T >::push ( const T &  data)
throw (std::exception,
std::overflow_error
)
inline

Inserta en la pila una copia de data.

push(data) inserta en la pila una copia del valor de data.

Parámetros
[in]data
Devuelve
una referencia al dato recién insertado y contenido en la pila.
Excepciones
overflow_errorsi la capacidad ya está llena.

Referenciado por Aleph::inOrderStack(), Aleph::postOrderStack(), Aleph::preOrderStack() y Aleph::simple_preOrderStack().

+ Gráfico de llamadas a esta función:

template<typename T>
T& Aleph::ArrayStack< T >::pushn ( const size_t &  n = 1)
throw (std::exception,
std::overflow_error
)
inline

Empuja n espacios con valor indefinido en la pila.

pushn(n) es equivalente a n push con valor de elemento indeterminado. La idea es apartar espacio en pila para luego accederlo en tiempo constante.

La operación toma tiempo constante.

Parámetros
[in]nnúmero de espacios a ser apartados.
Devuelve
referencia al tope de la pila (el valor es indeterminado).
Excepciones
overflow_errorsi la capacidad ya está llena.
template<typename T>
T& Aleph::ArrayStack< T >::top ( const int &  i)
throw (std::exception,
std::underflow_error
)
inline

Retorna una referencia al elemento situado i posiciones después del tope.

top(i) accede al elemento de la pila situado i posiciones luego del tope.

Parámetros
[in]inúmero de posiciones después del tope.
Devuelve
una referencia al elemento situado i posiciones después del tope.
Excepciones
underflow_errorsi i excede el número de elementos de la pila.

La documentación para esta clase fue generada a partir del siguiente fichero:

Leandro Rabindranath León