Requisito previo: lista , pila
trabajo de adaptador
Sintaxis:
stack <Tipo> nombre_de_la_pila;
La lista de pilas es un tipo de contenedor que tiene una serie de pilas, este es un contenedor bidimensional donde N filas de lista y M columnas de pilas, el tamaño de ambas dimensiones no es fijo. iteradores
Sintaxis:
list <pila <Tipo> > nombre_del_contenedor(tamaño);
donde el tamaño es opcional
Ejemplo:
lista <pila <int> > ls(10);
el tamaño de la lista de pilas es 10
Inserción : la inserción en la lista de la pila se realiza mediante la función push() .
Ejemplo:
C++
// Loop to push element // into a stack for i in[0, n] { s.push(i) } // Push Stack into the list ls.push_back(s);
Recorrido : El recorrido en una lista de la pila se realiza mediante iteradores .
C++
// Loop to iterate over list for (iterator it = ls.begin(); it != ls.end(); it++) { // Stack of the List stack<int> st = *it; while (!st.empty()) { cout << st.top(); st.pop(); } }
El código anterior atraviesa list<int> ls en cada índice usando los iteradores iniciales ls.begin() y el iterador final ls.end() . Para acceder al elemento que usa (*it) como pila, hay punteros que apuntan a elementos en la lista <stack <int> > ls .
A continuación se muestra el programa para ilustrar la inserción y el recorrido en listas de pilas:
C++
// C++ program for implementation // of the lists of stack #include <bits/stdc++.h> using namespace std; // Function for printing the // elements in a list void showlist(list<stack<int> > ls) { // Traverse the list and // print row wise stack for (list<stack<int> >::iterator it1 = ls.begin(); it1 != ls.end(); ++it1) { // Copy rows in stack stack<int> it2 = *it1; // Print stack elements while // it is not empty while (!it2.empty()) { cout << it2.top() << " "; it2.pop(); } cout << endl; } } // Driver Code int main() { // List of stacks list<stack<int> > ls; // Insert rows in list for (int i = 0; i < 10; ++i) { // Insert element in // stack as column stack<int> s; for (int j = i; j < 10; j++) { s.push(j); } ls.push_back(s); } cout << "List of stack is : \n"; showlist(ls); return 0; }
List of stack is : 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 9 8 7 6 5 4 9 8 7 6 5 9 8 7 6 9 8 7 9 8 9