SlideShare una empresa de Scribd logo
1 de 17
Pilas y Colas
Ing. Eliezer Córdova
Pilas
• Son estructuras utilizadas muy a menudo como
  herramientas de programación de tipo LIFO (Last
  in-First out)
• Permiten el acceso solo a un elemento a la vez: el
  último elemento insertado
• La mayoría de los procesadores utilizan una
  arquitectura basada en pilas
Las operaciones definidas para
     una pila son las siguientes
• push: inserta un objeto en el tope de la pila

• empty: retorna un valor que indica si la pila está vacía o no.

• pop: remueve el objeto que está en el tope de la pila. No está
definido si la pila está vacía.

• top: retorna el objeto que está en el tope de la pila sin borrarlo.
No está definido si la pila está vacía.
Pilas de libros
Pilas de libros
Pilas
     Implementadas en listas
Constructores:
Push (Insertar al inicio)
Pop (Eliminar al inicio)
Selectores:
Pila-Vacia? (El apuntado Cabeza es Nul?)
Top (Mostrar el primero)
Pilas
              Implementadas en listas
                                     public int Peek(){
public class CPilaL extends
                                              Cnodo nodo;
CListaSimple{
                                              int dato;
public CPilaL(){super();}
                                              nodo = getCabeza();
public void Push( Cnodo nuevo ){
                                              dato = nodo.getIData();
         InsertaPrimero(nuevo);}
                                              return dato;}
public Cnodo Pop(){
                                     public boolean PilaVacia(){
         Cnodo nodo;
                                              return ( EstaVacia() );}
         nodo = EliminarPrimero();
                                     public void ImprimePila(){
         return nodo;}
                                              ImprimeLista();}
                                     }
Pilas
          Implementadas en
         Vectores - Algoritmos
PilaVacia( S )      Push( S, x )                 Pop( S )
  If top( S ) = 0     Top( S ) <– Top( S ) + 1     If PilaVacia
    return true       S[ top( S ) ] <– x             error
  Else                                             else
    return false                                     Top( S ) <– Top( S ) - 1
                                                     return S[ Top( S ) + 1 ]
Pilas - Eficiencia
• El tiempo de ejecución de las operaciones
  primarias de una pila no depende del
  tamaño de la pila
• Push y Pop se realizan en tiempo constante
  O(1) - no es necesario hacer ninguna
  comparación
Colas
• Son estructuras de datos de tipo FIFO (First
  in-First out)
• Simulan una cola de personas en el cine
• Las colas son herramientas de programación
  como las pilas
Las operaciones definidas para
  una cola son las siguientes

 – Encolar: agrega un nuevo dato al final de la
   cola
 – Desencolar: elimina un dato del principio de la
   cola
Colas - Operaciones
Colas - Operaciones
Colas
      Implementadas en listas
Constructores:
Encolar (Insertar al final)
Desencolar (Eliminar al inicio)
Selectores:
Cola-Vacia? (El apuntado Cabeza es Nil?)
Primero-Cola (Mostrar el primero)
Colas
           Implementadas en
          Vectores - Algoritmos
                                 Desencolar( Q )
Encolar( Q, x )                    x <– Q[ Cabeza( Q ) ]
  Q[ Fin( Q ) ] <– x               if Cabeza( Q ) = Length( Q )
  if Fin( Q ) = length( Q )           Cabeza( Q ) <– 1
      Fin( Q ) <– 1                else
  else                                 Cabeza( Q ) <– Cabeza( Q ) + 1
      Fin( Q ) <– Fin( Q ) + 1     return x
Colas - Eficiencia
• El tiempo de ejecución de las operaciones
  primarias de una colas no depende del
  tamaño de la cola
• Encolar y Desencolar se realizan en tiempo
  constante O(1) - no es necesario hacer
  ninguna comparación
Cola doble enlace
La mejor implementación de cola, es con una
lista, donde se tenga un apuntador a la cabeza y
uno al último de la lista.




                                           Null
         Null

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Unary operator overloading
Unary operator overloadingUnary operator overloading
Unary operator overloading
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Colas
ColasColas
Colas
 
Data Structures - Lecture 9 [Stack & Queue using Linked List]
 Data Structures - Lecture 9 [Stack & Queue using Linked List] Data Structures - Lecture 9 [Stack & Queue using Linked List]
Data Structures - Lecture 9 [Stack & Queue using Linked List]
 
Colecciones en Python
Colecciones en PythonColecciones en Python
Colecciones en Python
 
Presentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y ColasPresentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y Colas
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Stack - Data Structure
Stack - Data StructureStack - Data Structure
Stack - Data Structure
 
Recursividad
RecursividadRecursividad
Recursividad
 
COLAS
COLASCOLAS
COLAS
 
Colas Circulares
Colas CircularesColas Circulares
Colas Circulares
 
Programación 1: cadenas en C
Programación 1: cadenas en CProgramación 1: cadenas en C
Programación 1: cadenas en C
 
Stacks in DATA STRUCTURE
Stacks in DATA STRUCTUREStacks in DATA STRUCTURE
Stacks in DATA STRUCTURE
 
C Structures and Unions
C Structures and UnionsC Structures and Unions
C Structures and Unions
 
PILAS
PILASPILAS
PILAS
 
Bca ii dfs u-1 introduction to data structure
Bca ii dfs u-1 introduction to data structureBca ii dfs u-1 introduction to data structure
Bca ii dfs u-1 introduction to data structure
 
Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 

Destacado (20)

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
 
Recursividad
RecursividadRecursividad
Recursividad
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: Recursividad
 
Diferencias entre mapa conceptual y mapa mental
Diferencias entre mapa conceptual y mapa mentalDiferencias entre mapa conceptual y mapa mental
Diferencias entre mapa conceptual y mapa mental
 
Lactancia materna
Lactancia maternaLactancia materna
Lactancia materna
 
Des outils libres pour la recherche
Des outils libres pour la rechercheDes outils libres pour la recherche
Des outils libres pour la recherche
 
Presentación María
Presentación MaríaPresentación María
Presentación María
 
Juegos de lógica
Juegos de lógicaJuegos de lógica
Juegos de lógica
 
Causas
CausasCausas
Causas
 
Publicidad
PublicidadPublicidad
Publicidad
 
Philosophie sdbienne
Philosophie sdbiennePhilosophie sdbienne
Philosophie sdbienne
 
Allo La Terre
Allo La TerreAllo La Terre
Allo La Terre
 
Bp110 Seance No5 2007
Bp110 Seance No5 2007Bp110 Seance No5 2007
Bp110 Seance No5 2007
 
Bp110 Seance No3 2007
Bp110 Seance No3 2007Bp110 Seance No3 2007
Bp110 Seance No3 2007
 
Pale Course
Pale CoursePale Course
Pale Course
 
Autrans09 Atelier J6 Ardesi 80109
Autrans09 Atelier J6 Ardesi 80109Autrans09 Atelier J6 Ardesi 80109
Autrans09 Atelier J6 Ardesi 80109
 

Similar a Pilas y Colas en 40

Similar a Pilas y Colas en 40 (20)

PilasyColas.ppt
PilasyColas.pptPilasyColas.ppt
PilasyColas.ppt
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Estructura dedatos
Estructura dedatosEstructura dedatos
Estructura dedatos
 
2- TDA Listas
2- TDA Listas2- TDA Listas
2- TDA Listas
 
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
 
Estructuradedatosipilas 101118211345-phpapp02
Estructuradedatosipilas 101118211345-phpapp02Estructuradedatosipilas 101118211345-phpapp02
Estructuradedatosipilas 101118211345-phpapp02
 
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
 
Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02
 
Estructura de datos pilas y colas
Estructura de datos pilas y colasEstructura de datos pilas y colas
Estructura de datos pilas y colas
 
Practica 3
Practica  3Practica  3
Practica 3
 
Colas Dennis Escobar Salazar.pdf
Colas Dennis Escobar Salazar.pdfColas Dennis Escobar Salazar.pdf
Colas Dennis Escobar Salazar.pdf
 
S6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colasS6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colas
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
 
Filas con listas doblemente enlazadas
Filas con listas doblemente enlazadasFilas con listas doblemente enlazadas
Filas con listas doblemente enlazadas
 
Variables2
Variables2Variables2
Variables2
 
Colas
ColasColas
Colas
 

Más de Eliezer Cordova

Más de Eliezer Cordova (20)

Tipos de comunicacion
Tipos de comunicacionTipos de comunicacion
Tipos de comunicacion
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Presentacion 1
Presentacion 1Presentacion 1
Presentacion 1
 
Introduccion publisher
Introduccion publisherIntroduccion publisher
Introduccion publisher
 
Presentaciones efectivas
Presentaciones efectivasPresentaciones efectivas
Presentaciones efectivas
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Programación
ProgramaciónProgramación
Programación
 
Presentacion aula virtual videoconferencia
Presentacion aula virtual videoconferenciaPresentacion aula virtual videoconferencia
Presentacion aula virtual videoconferencia
 
Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0
 
Lenguajes de programación.ppt
Lenguajes de programación.pptLenguajes de programación.ppt
Lenguajes de programación.ppt
 
Presentacion uno
Presentacion unoPresentacion uno
Presentacion uno
 
Intro
IntroIntro
Intro
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicas
 
2 arboles
2 arboles2 arboles
2 arboles
 
1 árbol
1 árbol1 árbol
1 árbol
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
3 funciones
3 funciones3 funciones
3 funciones
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 

Pilas y Colas en 40

  • 1. Pilas y Colas Ing. Eliezer Córdova
  • 2. Pilas • Son estructuras utilizadas muy a menudo como herramientas de programación de tipo LIFO (Last in-First out) • Permiten el acceso solo a un elemento a la vez: el último elemento insertado • La mayoría de los procesadores utilizan una arquitectura basada en pilas
  • 3. Las operaciones definidas para una pila son las siguientes • push: inserta un objeto en el tope de la pila • empty: retorna un valor que indica si la pila está vacía o no. • pop: remueve el objeto que está en el tope de la pila. No está definido si la pila está vacía. • top: retorna el objeto que está en el tope de la pila sin borrarlo. No está definido si la pila está vacía.
  • 6. Pilas Implementadas en listas Constructores: Push (Insertar al inicio) Pop (Eliminar al inicio) Selectores: Pila-Vacia? (El apuntado Cabeza es Nul?) Top (Mostrar el primero)
  • 7. Pilas Implementadas en listas public int Peek(){ public class CPilaL extends Cnodo nodo; CListaSimple{ int dato; public CPilaL(){super();} nodo = getCabeza(); public void Push( Cnodo nuevo ){ dato = nodo.getIData(); InsertaPrimero(nuevo);} return dato;} public Cnodo Pop(){ public boolean PilaVacia(){ Cnodo nodo; return ( EstaVacia() );} nodo = EliminarPrimero(); public void ImprimePila(){ return nodo;} ImprimeLista();} }
  • 8. Pilas Implementadas en Vectores - Algoritmos PilaVacia( S ) Push( S, x ) Pop( S ) If top( S ) = 0 Top( S ) <– Top( S ) + 1 If PilaVacia return true S[ top( S ) ] <– x error Else else return false Top( S ) <– Top( S ) - 1 return S[ Top( S ) + 1 ]
  • 9. Pilas - Eficiencia • El tiempo de ejecución de las operaciones primarias de una pila no depende del tamaño de la pila • Push y Pop se realizan en tiempo constante O(1) - no es necesario hacer ninguna comparación
  • 10. Colas • Son estructuras de datos de tipo FIFO (First in-First out) • Simulan una cola de personas en el cine • Las colas son herramientas de programación como las pilas
  • 11. Las operaciones definidas para una cola son las siguientes – Encolar: agrega un nuevo dato al final de la cola – Desencolar: elimina un dato del principio de la cola
  • 14. Colas Implementadas en listas Constructores: Encolar (Insertar al final) Desencolar (Eliminar al inicio) Selectores: Cola-Vacia? (El apuntado Cabeza es Nil?) Primero-Cola (Mostrar el primero)
  • 15. Colas Implementadas en Vectores - Algoritmos Desencolar( Q ) Encolar( Q, x ) x <– Q[ Cabeza( Q ) ] Q[ Fin( Q ) ] <– x if Cabeza( Q ) = Length( Q ) if Fin( Q ) = length( Q ) Cabeza( Q ) <– 1 Fin( Q ) <– 1 else else Cabeza( Q ) <– Cabeza( Q ) + 1 Fin( Q ) <– Fin( Q ) + 1 return x
  • 16. Colas - Eficiencia • El tiempo de ejecución de las operaciones primarias de una colas no depende del tamaño de la cola • Encolar y Desencolar se realizan en tiempo constante O(1) - no es necesario hacer ninguna comparación
  • 17. Cola doble enlace La mejor implementación de cola, es con una lista, donde se tenga un apuntador a la cabeza y uno al último de la lista. Null Null