apilar arriba() en C++ STL

Las pilas son un tipo de adaptadores de contenedores con tipo de trabajo LIFO (Last In First Out), donde se agrega un nuevo elemento en un extremo llamado la parte superior de la pila, y un elemento se elimina solo del mismo extremo.

stack::top( ) La función top() se usa para hacer referencia al elemento superior (o el más nuevo) de la pila.

Sintaxis:  

stackname.top()

Parámetros: No se necesita ningún valor para pasar como parámetro.
Valor de retorno: referencia directa al elemento superior del contenedor de pila.

Ejemplos:  

Input  : stackname.push(5);
         stackname.push(1);
         stackname.top();
Output : 1

Input  : stackname.push(5);
         stackname.push(1);
         stackname.push(2);
         stackname.top();
Output : 2

Errores y excepciones 

  1. Si el contenedor de pila está vacío, provoca un comportamiento indefinido
  2. Tiene una garantía de tiro sin excepción si la pila no está vacía.

C++

// CPP program to illustrate
// Implementation of top() function
#include <iostream>
#include <stack>
using namespace std;
 
int main()
{
    stack<int> mystack;
    mystack.push(5);
    mystack.push(1);
    mystack.push(2);
 
    // Stack top
    cout << mystack.top();
    return 0;
}

Producción:  

2

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(n)

Aplicación: 
dada una pila de números enteros, encuentre la suma de todos los números enteros.  

Input : 1, 8, 3, 6, 2
Output: 20

Algoritmo  

  1. Compruebe si la pila está vacía, si no, agregue el elemento superior a una variable inicializada como 0 y extraiga el elemento superior.
  2. Repita este paso hasta que la pila esté vacía.
  3. Imprime el valor final de la variable.

C++

// CPP program to illustrate
// Application of top() function
#include <iostream>
#include <stack>
using namespace std;
 
int main()
{
    int sum = 0;
    stack<int> mystack;
    mystack.push(1);
    mystack.push(8);
    mystack.push(3);
    mystack.push(6);
    mystack.push(2);
 
    // Stack becomes 1, 8, 3, 6, 2
 
    while (!mystack.empty()) {
        sum = sum + mystack.top();
        mystack.pop();
    }
    cout << sum;
    return 0;
}

Producción:  

20 

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Publicación traducida automáticamente

Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *