logo

Apilar en C++ STL

Las pilas son un tipo de adaptadores de contenedor con tipo de funcionamiento LIFO (Last In First Out), donde se agrega un nuevo elemento en un extremo (superior) y se elimina un elemento solo de ese extremo. Stack usa un objeto encapsulado de cualquiera de los dos vector o deque (por defecto) o lista (clase contenedora secuencial) como su contenedor subyacente, proporcionando un conjunto específico de funciones miembro para acceder a sus elementos.

atoi c

Si hay confusión al recordar la diferencia básica entre pila y cola, entonces solo tenga un ejemplo de la vida real para esta diferenciación, para apilar, apilar libros podemos tomar el libro superior fácilmente y para la cola recuerde cuándo tiene que pararse al frente de la cola. del cajero automático para sacar el efectivo, entonces la primera persona cerca del cajero automático tiene la primera oportunidad de sacar el dinero del cajero automático. Entonces, la cola es del tipo FIFO (primero en entrar, primero en salir).



Sintaxis de pila: -

Para crear una pila, debemos incluir el archivo de encabezado en nuestro código. Luego usamos esta sintaxis para definir std::stack:

plantillapila de clases;

Tipo – es el tipo de elemento contenido en std::stack. Puede ser cualquier tipo C++ válido o incluso un tipo definido por el usuario.



Envase – es el tipo de objeto contenedor subyacente.

Tipos de miembros: -

value_type: el primer parámetro de plantilla, T. Denota los tipos de elementos.



container_type: el segundo parámetro de plantilla, Container. Denota el tipo de contenedor subyacente.

size_type: tipo integral sin signo.

Las funciones asociadas a la pila son:
vacío() – Devuelve si la pila está vacía – Complejidad del tiempo: O(1)
size() – Devuelve el tamaño de la pila – Complejidad del tiempo: O(1)
top() – Devuelve una referencia al elemento superior de la pila – Complejidad del tiempo: O(1)
push(g) – Agrega el elemento ‘g’ en la parte superior de la pila – Complejidad del tiempo: O(1)
pop() – Elimina el elemento ingresado más reciente de la pila – Complejidad de tiempo: O(1)

C++




#include> #include> using> namespace> std;> int> main() {> >stack<>int>>pila;> >stack.push(21);>// The values pushed in the stack should be of the same data which is written during declaration of stack> >stack.push(22);> >stack.push(24);> >stack.push(25);> >int> num=0;> >stack.push(num);> >stack.pop();> >stack.pop();> >stack.pop();> > >while> (!stack.empty()) {> >cout << stack.top() <<>' '>;> >stack.pop();> >}> }>

>

barra de herramientas de acceso rápido de ms word
>

Producción

22 21>

Complejidad del tiempo: La complejidad temporal de este programa es O (N), donde N es el número total de elementos en la pila. El bucle while se repite N veces, extrayendo elementos de la pila e imprimiéndolos.

Complejidad espacial: La complejidad espacial de este programa es O(N), donde N es el número total de elementos en la pila. La estructura de datos de la pila utiliza un espacio proporcional a la cantidad de elementos almacenados en ella. En este caso, el tamaño máximo de la pila es 5, por lo que la complejidad del espacio es constante y también puede considerarse O(1).

Explicación del código:

  1. Incluya el archivo de encabezado iostream o en nuestro código para usar sus funciones.
  2. Incluya el archivo de encabezado de la pila en nuestro código para usar sus funciones, si ya está incluido, entonces no es necesario el archivo de encabezado de la pila porque ya tiene una función incorporada.
  3. Incluya el espacio de nombres estándar en nuestro código para usar sus clases sin llamarlo.
  4. Llame a la función principal(). La lógica del programa debe agregarse dentro de esta función.
  5. Cree una pila para almacenar valores enteros.
  6. Utilice la función push() para insertar el valor 21 en la pila.
  7. Utilice la función push() para insertar el valor 22 en la pila.
  8. Utilice la función push() para insertar el valor 24 en la pila.
  9. Utilice la función push() para insertar el valor 25 en la pila.
  10. Utilice un número de variable entero para ingresar un valor de variable. Aquí su valor es 0, pero podemos asignar cualquier valor entero usando cin>> num.
  11. Utilice la función push() para insertar el valor de la variable num.
  12. Utilice la función pop() para eliminar el elemento superior de la pila, es decir, 25. El elemento superior ahora se convierte en 24.
  13. Utilice la función pop() para eliminar el elemento superior de la pila, es decir, 24. El elemento superior ahora se convierte en 22.
  14. Utilice un bucle while y una función vacía() para comprobar si la pila NO está vacía. El ! es el operador NOT. Entonces, cuando la pila no está vacía, la función vacía () devolverá falso y el operador NOT lo convertirá en verdadero y el ciclo while seguirá ejecutándose. Pero, cuando la pila se vacía, la función vacía() devolverá verdadero y el operador NOT lo hará falso y el ciclo llegará a su fin.
  15. Imprimir el contenido actual de la pila en la consola.
  16. Llame a la función pop() en la pila.
  17. Fin del cuerpo del bucle while.
  18. Fin del cuerpo de la función main().

Lista de funciones de Stack:

  • pila::arriba() en C++ STL
  • pila::empty() y pila::tamaño() en C++ STL
  • pila::push() y pila::pop() en C++ STL
  • pila::intercambio() en C++ STL
  • pila::emplazar() en C++ STL
  • Artículos recientes sobre la pila de C++