intercambio de pila() en C++ STL – Part 1

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 y (arriba) se elimina un elemento solo de ese extremo.

pila::intercambiar()

Esta función se usa para intercambiar el contenido de una pila con otra pila del mismo tipo, pero el tamaño puede variar. Sintaxis:

stackname1.swap(stackname2)

Parámetros: el nombre de la pila con la que se deben intercambiar los contenidos. Resultado: Todos los elementos de la pila 2 se intercambian. Ejemplos:

contents of the stack from top to bottom are
Input  : mystack1 = {4, 3, 2, 1}
         mystack2 = {9, 7 ,5, 3}
         mystack1.swap(mystack2);
Output : mystack1 =  9, 7, 5, 3
         mystack2 =  4, 3, 2, 1

Input  : mystack1 = {7, 5, 3, 1}
         mystack2 = {8, 6, 4, 2}
         mystack1.swap(mystack2);
Output : mystack1 =  8, 6, 4, 2
         mystack2 =  7, 5, 3, 1

Nota: En el contenedor de pila, los elementos se imprimen en orden inverso porque la parte superior se imprime primero y luego se pasa a otros elementos. 

CPP

// CPP program to illustrate
// Implementation of swap() function
#include <stack>
#include <iostream>
using namespace std;
 
int main()
{
        // stack container declaration
    stack<int> mystack1;
    stack<int> mystack2;
     
    // pushing elements into first stack
    mystack1.push(1);
    mystack1.push(2);
    mystack1.push(3);
    mystack1.push(4);
     
    // pushing elements into 2nd stack
    mystack2.push(3);
    mystack2.push(5);
    mystack2.push(7);
    mystack2.push(9);
 
        // using swap() function to swap elements of stacks
    mystack1.swap(mystack2);
 
        // printing the first stack
    cout<<"mystack1 = ";
    while (!mystack1.empty()) {
        cout<<mystack1.top()<<" ";
        mystack1.pop();
    }
 
        // printing the second stack
    cout<<endl<<"mystack2 = ";
    while (!mystack2.empty()) {
        cout<<mystack2.top()<<" ";
        mystack2.pop();
    }
    return 0;
}

Producción:

mystack1 = 9 7 5 3
mystack2 = 4 3 2 1

Complejidad de tiempo: O(1)

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 *