English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Stack (pila)

En el campo de la informática, nos dedicamos a varios programas. Cada uno tiene su propio dominio y utilidad. Según el propósito y el entorno de creación del programa, tenemos una gran cantidad de estructuras de datos disponibles para elegir. Una de ellas es "pila". Antes de discutir este tipo de datos, veamos su sintaxis.

Sintaxis

template<class T, class Container = deque<T> > class stack;

Esta estructura de datos utiliza la técnica LIFO, donde LIFO significa último en entrar, primero en salir. El elemento insertado primero se extraerá en la parte final, y así sucesivamente. Hay un elemento llamado "top", que es el elemento situado en la posición más alta. Todas las operaciones de inserción y eliminación se realizan en el elemento en la parte superior de la pila.

La pila implícita en el área de aplicación es un adaptador de contenedor.

El contenedor debe soportar la siguiente lista de operaciones:

  • empty

  • size

  • back

  • push_back

  • pop_back

Parámetro de plantilla

T:los parámetros especifican el tipo de elementos que el adaptador de contenedor conservará.

Container:los parámetros especifican el objeto interno del contenedor utilizado para contener los elementos de la pila.

Tipos miembros

A continuación se presenta una lista de tipos miembros de la pila y se describe brevemente.

Tipo miembroDescripción
value_typeEspecifica el tipo de elemento.
container_typeEspecifica el tipo de contenedor base.
size_typeEspecifica el rango de tamaño del elemento.

Función

A través de las funciones, se pueden usar objetos o variables en el campo de la programación. La pila proporciona una gran cantidad de funciones que se pueden usar o incrustar en el programa. La lista es la misma:

FunciónDescripción
(constructor)Esta función se utiliza para construir el contenedor de pila.
emptyEsta función se utiliza para probar si la pila está vacía. Si la pila está vacía, esta función devuelve true, de lo contrario devuelve false.
sizeEsta función devuelve el tamaño del contenedor de pila, que es una medida de la cantidad de elementos almacenados en la pila.
topEsta función se utiliza para acceder al elemento superior de la pila. Este elemento juega un papel muy importante, ya que todas las operaciones de inserción y eliminación se realizan en el elemento superior.
pushEsta función se utiliza para insertar un nuevo elemento en la parte superior de la pila.
popEsta función se utiliza para eliminar elementos, eliminando el elemento superior de la pila.
emplaceEsta función se utiliza para insertar un nuevo elemento en la pila por encima del elemento superior actual.
swapEsta función se utiliza para intercambiar el contenido de dos contenedores de referencia.
operadores relacionalesoperadores relacionales
uses allocator<stack>Como su nombre indica, las funciones no miembro utilizan el administrador de memoria para la pila.

Ejemplo: Un programa simple que ilustra el uso de las funciones básicas de la pila.

#include <iostream>
#include <stack>
using namespace std;
void newstack(stack <int> ss)
{
	stack <int> sg = ss;
	while (!sg.empty())
	{
		cout << '\t' << sg.top();
		sg.pop();
	}
	cout << '\n';
}
int main ()
{
	stack <int> newst;
	newst.push(55);
	newst.push(44);
	newst.push(33);
	newst.push(22);
	newst.push(11);
	cout << "El último pila es : ";
	newstack(newst);
	cout << "\n newst.size() : " << newst.size();
	cout << "\n newst.top() : " << newst.top();
	cout << "\n newst.pop() : ";
	newst.pop();
	newstack(newst); 
	return 0;
}

Salida:

La última pila es : 	11	22	33	44	55
 newst.size() : 5
 newst.top() : 11
 newst.pop() : 	22	33	44	55