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.
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