SlideShare una empresa de Scribd logo
1 de 14
Aprendiendo Java
Pilas y Colas
Por Juan Astudillo
TDA: Tipos Abstractos de Datos
Pilas y Colas (Stack & Queue)
Pilas (Stacks)
• Una pila (stack en inglés) es parte de los TDA (Tipos
Abstractos de Datos) es una lista ordenada o estructura
de datos en la que el modo de acceso a sus elementos es
de tipo LIFO (del inglés Last In First Out, último en entrar,
primero en salir) que permite almacenar y recuperar
datos.
• Esta estructura TDA se usa en multitud de ocasiones en el
área de la informática debido a su simplicitud y
ordenación implícita de la propia estructura.
Pilas (Stacks)
• En todo momento sólo se tiene acceso a la parte superior de la pila, es
decir, al último objeto apilado (denominado TOS, Top of Stack en inglés
( es español a veces llamado Tope)). La operación sacar permite la
obtención de este elemento, que es retirado de la pila permitiendo el
acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo
TOS.
• Por analogía con objetos cotidianos, una operación apilar equivaldría a
colocar un plato sobre una pila de platos, y una operación retirar a
retirarlo.
• Para que se ocupan las Pilas:
-Evaluación de expresiones en notación postfija (notación polaca
inversa).
-Reconocedores sintácticos de lenguajes independientes del contexto
-Implementación de recursividad.
Pilas (Stacks)
• Operaciones con Pilas
Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en
las implementaciones modernas de las pilas se suelen añadir más de uso habitual:
Crear: se crea la pila vacía. (constructor)
Tamaño: regresa el numero de elementos de la pila. (size)
Apilar: se añade un elemento a la pila.(push)
Desapilar (retirar): se elimina el elemento frontal de la pila.(pop)
Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).
Pilas (Stacks)
Pilas (Stacks)
import java.util.Stack;
public class Pila_Stack {
public static void main(String args[])
{
Stack s = new Stack();
s.push(“Pilas");
s.push(“en");
s.push(“Java");
System.out.println(s);
}
}
Programa en Java que muestra el comportamiento de last-in-first-out (LIFO)
Programa en Java que muestra el uso de import java.util.Stack;
Pilas (Stacks)
import java.util.Stack;
public class StackExample {
public static void main(String args[]) {
Stack s = new Stack();
s.push("Java");
s.push("Source");
s.push("and");
System.out.println("Next: " + s.peek());
s.push("Support");
System.out.println(s.pop());
s.push(".");
int count = s.search("Java");
while (count != -1 && count > 1) {
s.pop();
count--;
}
System.out.println(s.pop());
System.out.println(s.empty());
}
}
uso de import java.util.Stack;
Colas (Queue)
•Una cola (también llamada fila) es otro TDA, es una estructura de datos,
caracterizada por ser una secuencia de elementos en la que la operación de
inserción push se realiza por un extremo y la operación de extracción pop
por el otro. También se le llama estructura FIFO (del inglés First In First Out),
debido a que el primer elemento en entrar será también el primero en salir.
•Las colas se utilizan en sistemas informáticos, transportes y operaciones de
investigación (entre otros), dónde los objetos, personas o eventos son
tomados como datos que se almacenan y se guardan mediante colas para su
posterior procesamiento.
Este tipo de estructura de datos abstracta se implementa en lenguajes
orientados a objetos mediante clases, en forma de listas enlazadas.
Colas (Queue)
Operaciones Básicas con Colas
•Crear: se crea la cola vacía.
•Encolar (añadir, entrar, insertar): se añade un elemento a la cola. Se añade
al final de esta.
•Desencolar (sacar, salir, eliminar): se elimina el elemento frontal de la cola,
es decir, el primer elemento que entró.
•Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir,
el primer elemento que entró.
Colas (Queue)
Ejemplo Visual de Cola
Colas (Queue)
import java.util.Collections;
import java.util.LinkedList;
public class Cola {
LinkedList cola = new LinkedList();
public void encolar(int a) {
cola.addFirst(a);
}
public int desencolar() {
return (int) cola.removeLast();
}
public void mostrar() {
System.out.println(cola);
}
public void ordenar() {
Collections.sort(cola);
}
}
• Métodos para Pilas (Stack) sobre Stack
• Push
• Pop
• Peek
• Size
• Get
• Set
• Search
• System.out.println(<pila>);
• Métodos para Colas (Queue) sobre LinkedList
• AddFirst
• RemoveLast
• PeekLast => Front
• Size
• Get
• Set
• System.out.println(<cola>);
Resumen
*Estos son algunos de los más usados e importantes
14
Java es propiedad de Oracle Corporation. Todos los derechos reservados.
-Microsoft Windows es propiedad de Microsoft Corporation. Todos los derechos reservados.
Presentación construida con software original Microsoft Windows,
Microsoft Office y Oracle.
Gracias

Más contenido relacionado

La actualidad más candente

Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
LuiS YmAY
 
Diccionario De Datos
Diccionario De DatosDiccionario De Datos
Diccionario De Datos
nahun1385
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
cintiap25
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
Blanca Parra
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 

La actualidad más candente (20)

Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Diccionario De Datos
Diccionario De DatosDiccionario De Datos
Diccionario De Datos
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 
Colas
ColasColas
Colas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Listas
ListasListas
Listas
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-R
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 

Similar a Java pilas (Stacks) y colas (Queues)

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
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
Alex Pin
 
Estructura de datos
Estructura de datos Estructura de datos
Estructura de datos
jarydr18
 

Similar a Java pilas (Stacks) y colas (Queues) (20)

Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datos
 
Python Pilas y Colas
Python Pilas y ColasPython Pilas y Colas
Python Pilas y Colas
 
Datos
DatosDatos
Datos
 
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
 
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
 
DECLARACIÓN DE PILAS.pdf
DECLARACIÓN DE PILAS.pdfDECLARACIÓN DE PILAS.pdf
DECLARACIÓN DE PILAS.pdf
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Unidad iii Pilas y colas
Unidad iii Pilas y colasUnidad iii Pilas y colas
Unidad iii Pilas y colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
Unidad 2 - Clase 5 - Pilas. sistemas de ls organizacion
Unidad 2 - Clase 5 - Pilas. sistemas de ls organizacionUnidad 2 - Clase 5 - Pilas. sistemas de ls organizacion
Unidad 2 - Clase 5 - Pilas. sistemas de ls organizacion
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Estructura de datos
Estructura de datos Estructura de datos
Estructura de datos
 

Más de Juan Astudillo

Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005 Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005
Juan Astudillo
 

Más de Juan Astudillo (18)

Introducción a Scrum
Introducción a ScrumIntroducción a Scrum
Introducción a Scrum
 
Petya / Petrwrap / NoPetya
Petya / Petrwrap / NoPetyaPetya / Petrwrap / NoPetya
Petya / Petrwrap / NoPetya
 
Mejora de Rendimiento y Aceleración de Microsoft Excel
Mejora de Rendimiento y Aceleración de Microsoft ExcelMejora de Rendimiento y Aceleración de Microsoft Excel
Mejora de Rendimiento y Aceleración de Microsoft Excel
 
Ransonware: introducción a nuevo Virus Informático
Ransonware: introducción a nuevo Virus InformáticoRansonware: introducción a nuevo Virus Informático
Ransonware: introducción a nuevo Virus Informático
 
JavaScript pilas (Stacks) y colas (Queues) 2
JavaScript pilas (Stacks) y colas (Queues) 2JavaScript pilas (Stacks) y colas (Queues) 2
JavaScript pilas (Stacks) y colas (Queues) 2
 
Introducción a la Medición de Sistemas (Moore y Amdhal)
Introducción a la Medición de Sistemas (Moore y Amdhal)Introducción a la Medición de Sistemas (Moore y Amdhal)
Introducción a la Medición de Sistemas (Moore y Amdhal)
 
Java & Strings
Java & StringsJava & Strings
Java & Strings
 
Java y Matematicas
Java y MatematicasJava y Matematicas
Java y Matematicas
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSite
 
Limpiar Windows, Internet Explorer y Chrome
Limpiar Windows, Internet Explorer y ChromeLimpiar Windows, Internet Explorer y Chrome
Limpiar Windows, Internet Explorer y Chrome
 
Acercamiento a BPMN - Instalacion y configuracion Bonita
Acercamiento a BPMN - Instalacion y configuracion BonitaAcercamiento a BPMN - Instalacion y configuracion Bonita
Acercamiento a BPMN - Instalacion y configuracion Bonita
 
Control de Aplicaciones - Hacking Corporativo - Auditoria Computacional
Control de Aplicaciones - Hacking Corporativo - Auditoria ComputacionalControl de Aplicaciones - Hacking Corporativo - Auditoria Computacional
Control de Aplicaciones - Hacking Corporativo - Auditoria Computacional
 
Java Arreglos y Matrices
Java Arreglos y MatricesJava Arreglos y Matrices
Java Arreglos y Matrices
 
Comandos Powershell para Sharepoint 2010
Comandos Powershell para Sharepoint 2010Comandos Powershell para Sharepoint 2010
Comandos Powershell para Sharepoint 2010
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005 Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005
 
Instalación y configuración Mysql Xampp
Instalación y configuración Mysql XamppInstalación y configuración Mysql Xampp
Instalación y configuración Mysql Xampp
 
Instalación y configuración Mysql Server Federado 5.5.33
Instalación y configuración Mysql Server Federado 5.5.33Instalación y configuración Mysql Server Federado 5.5.33
Instalación y configuración Mysql Server Federado 5.5.33
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

Java pilas (Stacks) y colas (Queues)

  • 1. Aprendiendo Java Pilas y Colas Por Juan Astudillo
  • 2. TDA: Tipos Abstractos de Datos Pilas y Colas (Stack & Queue)
  • 3. Pilas (Stacks) • Una pila (stack en inglés) es parte de los TDA (Tipos Abstractos de Datos) es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. • Esta estructura TDA se usa en multitud de ocasiones en el área de la informática debido a su simplicitud y ordenación implícita de la propia estructura.
  • 4. Pilas (Stacks) • En todo momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, Top of Stack en inglés ( es español a veces llamado Tope)). La operación sacar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS. • Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo. • Para que se ocupan las Pilas: -Evaluación de expresiones en notación postfija (notación polaca inversa). -Reconocedores sintácticos de lenguajes independientes del contexto -Implementación de recursividad.
  • 5. Pilas (Stacks) • Operaciones con Pilas Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual: Crear: se crea la pila vacía. (constructor) Tamaño: regresa el numero de elementos de la pila. (size) Apilar: se añade un elemento a la pila.(push) Desapilar (retirar): se elimina el elemento frontal de la pila.(pop) Cima: devuelve el elemento que esta en la cima de la pila. (top o peek) Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).
  • 7. Pilas (Stacks) import java.util.Stack; public class Pila_Stack { public static void main(String args[]) { Stack s = new Stack(); s.push(“Pilas"); s.push(“en"); s.push(“Java"); System.out.println(s); } } Programa en Java que muestra el comportamiento de last-in-first-out (LIFO) Programa en Java que muestra el uso de import java.util.Stack;
  • 8. Pilas (Stacks) import java.util.Stack; public class StackExample { public static void main(String args[]) { Stack s = new Stack(); s.push("Java"); s.push("Source"); s.push("and"); System.out.println("Next: " + s.peek()); s.push("Support"); System.out.println(s.pop()); s.push("."); int count = s.search("Java"); while (count != -1 && count > 1) { s.pop(); count--; } System.out.println(s.pop()); System.out.println(s.empty()); } } uso de import java.util.Stack;
  • 9. Colas (Queue) •Una cola (también llamada fila) es otro TDA, es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir. •Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación (entre otros), dónde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas.
  • 10. Colas (Queue) Operaciones Básicas con Colas •Crear: se crea la cola vacía. •Encolar (añadir, entrar, insertar): se añade un elemento a la cola. Se añade al final de esta. •Desencolar (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró. •Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
  • 12. Colas (Queue) import java.util.Collections; import java.util.LinkedList; public class Cola { LinkedList cola = new LinkedList(); public void encolar(int a) { cola.addFirst(a); } public int desencolar() { return (int) cola.removeLast(); } public void mostrar() { System.out.println(cola); } public void ordenar() { Collections.sort(cola); } }
  • 13. • Métodos para Pilas (Stack) sobre Stack • Push • Pop • Peek • Size • Get • Set • Search • System.out.println(<pila>); • Métodos para Colas (Queue) sobre LinkedList • AddFirst • RemoveLast • PeekLast => Front • Size • Get • Set • System.out.println(<cola>); Resumen *Estos son algunos de los más usados e importantes
  • 14. 14 Java es propiedad de Oracle Corporation. Todos los derechos reservados. -Microsoft Windows es propiedad de Microsoft Corporation. Todos los derechos reservados. Presentación construida con software original Microsoft Windows, Microsoft Office y Oracle. Gracias