Pilas (Stack)

Presentación con los problemas y explicación de pilas.

Códigos de los problemas resueltos en clase.

Problema 1: (Easy Stack)

// compile & run:     g++ main.cpp -o main && ./main < input.txt > out.txt

#include <cstdio>
#include <iostream>
#include <stack>

using namespace std;

int main() {

    stack<int> pila;

    int num_operaciones;
    cin>>num_operaciones;

    for (int i=0; i<num_operaciones; i++) {
        int tipo_operacion;
        cin>>tipo_operacion;
        
        if (tipo_operacion == 1) { // PUSH METER A LA PILA
            int elemento;
            cin>>elemento;
            pila.push(elemento);
        } else if (tipo_operacion == 2) { /// POP ELIMINAR DE LA PILA
            if (!pila.empty()) {
                pila.pop();
            }
        } else { // TOP IMPRIMIR
            if (pila.empty()) {
                cout<<"Empty!"<<endl;
            } else {
                int ultimo_elemento = pila.top();
                cout<< ultimo_elemento <<endl;
            }
        }
    }

    return (0);
}

Problema 2: (Reverse String):

// compile & run:     g++ main.cpp -o main && ./main < input.txt > out.txt

#include <cstdio>
#include <iostream>
#include <stack>

using namespace std;

int main() {

    string palabra;
    stack<char> pila;

    cin>>palabra;

    for (int i = 0; i<palabra.size(); i++) {
        pila.push(palabra[i]);
    }

    while(!pila.empty()) {
        cout<< pila.top() ;
        pila.pop();
    }
    cout<<endl;

    return (0);
}

Last updated