SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
2.5 Pilas (stack)

   Apoyo SSD5
Pilas
Una pila es una estructura de datos lineal
que brinda acceso sólo al último elemento
agregado.
En una pila, los elementos sólo pueden
ser agregados y eliminados del final de
una secuencia.
Esto lleva a la política de inserción y
eliminación de elementos conocida como
quot;Último en Entrar, Primero en Salirquot;.
                 Mtl Lourdes Cahuich         2
Pilas
Dicho de otra forma, el siguiente elemento
que puede ser eliminado de una pila es
siempre el elemento que fue agregado
más recientemente en la pila.
Siempre podemos agregar más elementos
a la pila, pero cada vez que lo hacemos, el
elemento agregado más recientemente se
convierte en el elemento que puede ser
eliminado primero.

                 Mtl Lourdes Cahuich      3
Mtl Lourdes Cahuich   4
Pilas
Con este modelo en mente, pasemos a
añadir unos cuantos elementos a una pila
que inicialmente se encuentra vacía.
Primero añadimos (generalmente se le
conoce como quot;empujarquot; (pushing) a la fila
un elemento con el valor de 1.



                Mtl Lourdes Cahuich         5
Mtl Lourdes Cahuich   6
Pilas
El elemento sombreado en gris está ahora
en la parte más alta de la pila.
Al añadir el segundo elemento se esconde
el primer elemento debido a que el
segundo elemento es ahora el único
elemento que puede ser eliminado.
Además, es el único elemento de la pila a
cuyo valor podemos acceder.
                Mtl Lourdes Cahuich     7
Pilas
Esta es una propiedad importante de la
estructura de datos de pilas que difiere de
los vectores y los deques.
En una pila, tenemos acceso al número de
elementos almacenados en la estructura
de datos, pero no tenemos acceso a todos
los valores de los elementos


                 Mtl Lourdes Cahuich      8
Pilas
Si fuéramos a eliminar un elemento de la pila
(por lo general se le conoce como quot;poppingquot;),
nuestra pila se vería como en la figura de
enmedio
Hemos examinado cómo operan las pilas y
hemos visto las operaciones principales
asociadas con las pilas.
En resumen, quot;empujandoquot; o quot;pushingquot; agrega
un elemento en la parte más alta de la pila, y
quot;poppingquot; elimina el elemento que se encuentra
más arriba de la fila.
                  Mtl Lourdes Cahuich            9
Aplicaciones de Pilas
Las pilas son una estructura importante en
la Ciencia Computacional, y tienen
muchas aplicaciones diferentes.
Estas aplicaciones varían de tareas
sencillas como invertir los caracteres en
una cadena, a tareas más complejas
como la evaluación de expresiones
aritméticas o la navegación de laberintos.

                Mtl Lourdes Cahuich      10
Aplicaciones de Pilas
Es importante tener un entendimiento
sólido del concepto de una pila, debido a
que más adelante encontraremos muchos
usos de pilas en el contexto de otras
estructuras de datos y algoritmos.




                Mtl Lourdes Cahuich     11
Cómo Usar el Adaptador stack de
              STL
 El adaptador stack de STL ofrece una
 interfaz adecuada para ser usada como
 una pila.
 A continuación muestra todas las
 funciones miembro del adaptador stack




                Mtl Lourdes Cahuich      12
#include <iostream>
#include <string>
#include <cstdlib>
#include <stack>
using namespace std;
int main(int argc, char* argv[]) {
    stack<int> s;
    // push and pop
    s.push(1);
    s.pop();
    // top
    s.push(10);
    s.push(11);
    cout << s.top() << endl;
    // size and empty
    cout << s.size() << endl;
    cout << s.empty() << endl;
    return EXIT_SUCCESS;
}
                      Mtl Lourdes Cahuich   13
Adaptador stack
Solamente existen seis funciones
miembro en la interfaz del adaptador
stack.
Los métodos push y pop insertan y
eliminan elementos de una pila,
respectivamente, y el método top regresa
una referencia a los datos almacenados
arriba de la pila.

                Mtl Lourdes Cahuich    14
Adaptador stack
Al igual que el adaptador queue, el
método size regresa el número de
elementos almacenados en una pila y el
método empty despliega true si una fila
está vacía y false si la pila no está
vacía.
Para usar el adaptador stack de STL en
un programa, un programador debe incluir
la biblioteca <stack>.

                Mtl Lourdes Cahuich    15
Adaptador stack
Este listado despliega las líneas de un
archivo texto en orden inverso.
Una pila provee una estructura de datos
natural para resolver este problema.




                Mtl Lourdes Cahuich       16
// open file specified by command-line argument
ifstream inf(argv[1]);
if ( !inf ) {
    cerr << quot;cannot open quot; << filename << quot; for inputquot; <<
  endl;
   return EXIT_FAILURE;
}
stack<string> s;
string line;
// read file line by line
while (getline(inf, line)) {
    s.push(line);
}
inf.close();
// print lines in reverse
while (!s.empty()) {
    cout << s.top() << endl;
    s.pop();
}
                        Mtl Lourdes Cahuich                 17

Más contenido relacionado

La actualidad más candente

Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette I. Pimentel S
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
Huascar Génere
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
Elias Peña
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
PatriciaU
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130
reyarturo16
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
mariajuly
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
rehoscript
 

La actualidad más candente (19)

Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas pilas colas
Listas pilas colasListas pilas colas
Listas pilas colas
 
Listas y Pilas
Listas y PilasListas y Pilas
Listas y Pilas
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colas
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Estructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colasEstructura de datos. listas, pilas y colas
Estructura de datos. listas, pilas y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Fila,pila y cola ..
Fila,pila y cola ..Fila,pila y cola ..
Fila,pila y cola ..
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
 

Similar a 10 Pilas

8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
UVM
 
19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles
UVM
 
Tad lista, pilas y colas
Tad lista, pilas y colasTad lista, pilas y colas
Tad lista, pilas y colas
labarra90
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datos
José Braganza
 
7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos
UVM
 

Similar a 10 Pilas (20)

8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte8 Listas Encadenadas 2a Parte
8 Listas Encadenadas 2a Parte
 
19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles19 Contenedores De Stl Basados En Arboles
19 Contenedores De Stl Basados En Arboles
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Tad lista, pilas y colas
Tad lista, pilas y colasTad lista, pilas y colas
Tad lista, pilas y colas
 
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datos
 
7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Curso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacionCurso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacion
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
secme-19001 (1) (1) (1).pdf
secme-19001 (1) (1) (1).pdfsecme-19001 (1) (1) (1).pdf
secme-19001 (1) (1) (1).pdf
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 

Más de UVM

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

Último

Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
edwinrojas836235
 

Último (20)

Contabilidad universitaria Septima edición de MCGrawsHill
Contabilidad universitaria Septima edición de MCGrawsHillContabilidad universitaria Septima edición de MCGrawsHill
Contabilidad universitaria Septima edición de MCGrawsHill
 
LIC-ZIEGLER-Planificación y Control de Gestión
LIC-ZIEGLER-Planificación y Control de GestiónLIC-ZIEGLER-Planificación y Control de Gestión
LIC-ZIEGLER-Planificación y Control de Gestión
 
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYPPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptx
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptx
 
Clase#3-JdlB-2011_03_28 tasa de intereses
Clase#3-JdlB-2011_03_28 tasa de interesesClase#3-JdlB-2011_03_28 tasa de intereses
Clase#3-JdlB-2011_03_28 tasa de intereses
 
el impuesto genera A LAS LAS lasventas IGV
el impuesto genera A LAS  LAS lasventas IGVel impuesto genera A LAS  LAS lasventas IGV
el impuesto genera A LAS LAS lasventas IGV
 
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
 
La Cadena de suministro CocaCola Co.pptx
La Cadena de suministro CocaCola Co.pptxLa Cadena de suministro CocaCola Co.pptx
La Cadena de suministro CocaCola Co.pptx
 
TEORÍAS DE LA MOTIVACIÓN Recursos Humanos.pptx
TEORÍAS DE LA MOTIVACIÓN Recursos Humanos.pptxTEORÍAS DE LA MOTIVACIÓN Recursos Humanos.pptx
TEORÍAS DE LA MOTIVACIÓN Recursos Humanos.pptx
 
Plan General de Contabilidad Y PYMES pdf
Plan General de Contabilidad Y PYMES pdfPlan General de Contabilidad Y PYMES pdf
Plan General de Contabilidad Y PYMES pdf
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
 
cuadro sinoptico tipos de organizaci.pdf
cuadro sinoptico tipos de organizaci.pdfcuadro sinoptico tipos de organizaci.pdf
cuadro sinoptico tipos de organizaci.pdf
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
 
DERECHO EMPRESARIAL - SEMANA 01 UNIVERSIDAD CESAR VALLEJO
DERECHO EMPRESARIAL - SEMANA 01 UNIVERSIDAD CESAR VALLEJODERECHO EMPRESARIAL - SEMANA 01 UNIVERSIDAD CESAR VALLEJO
DERECHO EMPRESARIAL - SEMANA 01 UNIVERSIDAD CESAR VALLEJO
 
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfinformacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdf
 
modulo+penal+del+16+al+20+hhggde+enero.pdf
modulo+penal+del+16+al+20+hhggde+enero.pdfmodulo+penal+del+16+al+20+hhggde+enero.pdf
modulo+penal+del+16+al+20+hhggde+enero.pdf
 
Buenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasBuenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en droguerias
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptx
 
PIA MATEMATICAS FINANCIERAS SOBRE PROBLEMAS DE ANUALIDAD.pptx
PIA MATEMATICAS FINANCIERAS SOBRE PROBLEMAS DE ANUALIDAD.pptxPIA MATEMATICAS FINANCIERAS SOBRE PROBLEMAS DE ANUALIDAD.pptx
PIA MATEMATICAS FINANCIERAS SOBRE PROBLEMAS DE ANUALIDAD.pptx
 

10 Pilas

  • 1. 2.5 Pilas (stack) Apoyo SSD5
  • 2. Pilas Una pila es una estructura de datos lineal que brinda acceso sólo al último elemento agregado. En una pila, los elementos sólo pueden ser agregados y eliminados del final de una secuencia. Esto lleva a la política de inserción y eliminación de elementos conocida como quot;Último en Entrar, Primero en Salirquot;. Mtl Lourdes Cahuich 2
  • 3. Pilas Dicho de otra forma, el siguiente elemento que puede ser eliminado de una pila es siempre el elemento que fue agregado más recientemente en la pila. Siempre podemos agregar más elementos a la pila, pero cada vez que lo hacemos, el elemento agregado más recientemente se convierte en el elemento que puede ser eliminado primero. Mtl Lourdes Cahuich 3
  • 5. Pilas Con este modelo en mente, pasemos a añadir unos cuantos elementos a una pila que inicialmente se encuentra vacía. Primero añadimos (generalmente se le conoce como quot;empujarquot; (pushing) a la fila un elemento con el valor de 1. Mtl Lourdes Cahuich 5
  • 7. Pilas El elemento sombreado en gris está ahora en la parte más alta de la pila. Al añadir el segundo elemento se esconde el primer elemento debido a que el segundo elemento es ahora el único elemento que puede ser eliminado. Además, es el único elemento de la pila a cuyo valor podemos acceder. Mtl Lourdes Cahuich 7
  • 8. Pilas Esta es una propiedad importante de la estructura de datos de pilas que difiere de los vectores y los deques. En una pila, tenemos acceso al número de elementos almacenados en la estructura de datos, pero no tenemos acceso a todos los valores de los elementos Mtl Lourdes Cahuich 8
  • 9. Pilas Si fuéramos a eliminar un elemento de la pila (por lo general se le conoce como quot;poppingquot;), nuestra pila se vería como en la figura de enmedio Hemos examinado cómo operan las pilas y hemos visto las operaciones principales asociadas con las pilas. En resumen, quot;empujandoquot; o quot;pushingquot; agrega un elemento en la parte más alta de la pila, y quot;poppingquot; elimina el elemento que se encuentra más arriba de la fila. Mtl Lourdes Cahuich 9
  • 10. Aplicaciones de Pilas Las pilas son una estructura importante en la Ciencia Computacional, y tienen muchas aplicaciones diferentes. Estas aplicaciones varían de tareas sencillas como invertir los caracteres en una cadena, a tareas más complejas como la evaluación de expresiones aritméticas o la navegación de laberintos. Mtl Lourdes Cahuich 10
  • 11. Aplicaciones de Pilas Es importante tener un entendimiento sólido del concepto de una pila, debido a que más adelante encontraremos muchos usos de pilas en el contexto de otras estructuras de datos y algoritmos. Mtl Lourdes Cahuich 11
  • 12. Cómo Usar el Adaptador stack de STL El adaptador stack de STL ofrece una interfaz adecuada para ser usada como una pila. A continuación muestra todas las funciones miembro del adaptador stack Mtl Lourdes Cahuich 12
  • 13. #include <iostream> #include <string> #include <cstdlib> #include <stack> using namespace std; int main(int argc, char* argv[]) { stack<int> s; // push and pop s.push(1); s.pop(); // top s.push(10); s.push(11); cout << s.top() << endl; // size and empty cout << s.size() << endl; cout << s.empty() << endl; return EXIT_SUCCESS; } Mtl Lourdes Cahuich 13
  • 14. Adaptador stack Solamente existen seis funciones miembro en la interfaz del adaptador stack. Los métodos push y pop insertan y eliminan elementos de una pila, respectivamente, y el método top regresa una referencia a los datos almacenados arriba de la pila. Mtl Lourdes Cahuich 14
  • 15. Adaptador stack Al igual que el adaptador queue, el método size regresa el número de elementos almacenados en una pila y el método empty despliega true si una fila está vacía y false si la pila no está vacía. Para usar el adaptador stack de STL en un programa, un programador debe incluir la biblioteca <stack>. Mtl Lourdes Cahuich 15
  • 16. Adaptador stack Este listado despliega las líneas de un archivo texto en orden inverso. Una pila provee una estructura de datos natural para resolver este problema. Mtl Lourdes Cahuich 16
  • 17. // open file specified by command-line argument ifstream inf(argv[1]); if ( !inf ) { cerr << quot;cannot open quot; << filename << quot; for inputquot; << endl; return EXIT_FAILURE; } stack<string> s; string line; // read file line by line while (getline(inf, line)) { s.push(line); } inf.close(); // print lines in reverse while (!s.empty()) { cout << s.top() << endl; s.pop(); } Mtl Lourdes Cahuich 17