SlideShare una empresa de Scribd logo
1 de 20
Estructura de Datos
     Lista,pila y cola




                     Evanyeline Brito 11-1029
LISTA




        Evanyeline Brito 11-1029
O Lista de compra
O Lista de invitados




                       Evanyeline Brito 11-1029
O   Una lista consiste en una secuencia de nodos, en los que se
    guardan campos de datos arbitrarios y una o dos referencias
    (punteros) al nodo anterior o posterior.

O   Una lista es una colección homogénea de elementos con una
    relación lineal entre ellos. Es decir, cada elemento de la
    lista   (excepto  el    primero)  tiene un único elemento
    predecesor y cada elemento (excepto el último) tienen un
    elemento suceso




                                                    Evanyeline Brito 11-1029
O   Se define la ventana de una lista como el lugar de la secuencia
    sobre el cual se van a realizar las operaciones que se apliquen
    al objeto abstracto. De cierta manera, se puede ver como el
    único punto de la lista visible al usuario. Esto implica que el
    TAD, además de las operaciones usuales, debe tener
    operaciones para mover la ventana, de tal manera que se
    pueda colocar sobre cualquier elemento de la lista y afectarlo
    de la manera deseada




                                                        Evanyeline Brito 11-1029
TAD ListOrd[ TipoLO ]
e1, ..., en
{ inv: ei ei+1, i 1 i < n }

Constructoras:
inicListOrd: ListOrd

Modificadoras:
insListOrd: ListOrd x TipoLO ListOrd
elimListOrd: ListOrd x TipoLO ListOrd

Analizadoras:
infoListOrd: ListOrd x int TipoLO
longListOrd: ListOrd int
estaListOrd ListOrd x TipoLO int




                                        Evanyeline Brito 11-1029
O   Vectores : en esta representación, los elementos de la lista se
    sitúan consecutivamente en un vector. Maneja además dos
    campos adicionales que indican la longitud actual y la posición
    de la ventana.

O   Listas doblemente enlazadas: en esta representación, la lista
    tiene un nodo con apuntadores al primer elemento, al último y
    al elemento de la ventana. Los nodos, por su parte, se
    encuentran doblemente encadenados entre sí, para permitir
    que las modificadoras se puedan implementar con algoritmos
    O( 1 )




                                                        Evanyeline Brito 11-1029
PILA




       Evanyeline Brito 11-1029
O   Ejemplo:

 En una torre de discos, para sacar el disco de hasta abajo, tienes
que sacar primero todos los que están arriba de el, y es mas lata
cuando no sabes que disco es, tienes que buscar de uno por uno
e irlos sacando




                                                       Evanyeline Brito 11-1029
O   Pilas son un tipo especial de lista, conocidas como listas LIFO
    (Last In, First Out: el último en entrar es el primero en salir).
    Los elementos se "amontonan" o apilan, de modo que sólo el
    elemento que está encima de la pila puede ser leído, y sólo
    pueden añadirse elementos encima de la pila.

O   Una pila es una estructura de datos en la cual solo se pueden
    hacer 2 operaciones : colocar elemento al final,o quitar un
    elemento del final.




                                                          Evanyeline Brito 11-1029
TAD Pila[ TipoP ]
{ inv: TRUE }

Constructoras:
inicPila: Pila

Modificadoras:
adicPila: Pila x TipoP Pila
elimPila: Pila Pila

Analizadoras:
infoPila: Pila TipoP
vaciaPila: Pila int

Destructora:
destruirPila: Pila




                              Evanyeline Brito 11-1029
En esta implementación se utiliza un objeto
abstracto del TAD Lista para representar una pila.
El esquema de representación es el siguiente:
O La pila pil = se representa con la lista < e1, e2
   ... eN>.
O La pila vacía (pil = ) se representa internamente
   como una lista sin elementos (pil = < >).




                                          Evanyeline Brito 11-1029
Un vector es una buena manera de representar una pila, si se
conoce con anterioridad el número máximo de elementos que va a
contener. Sólo se necesita algún medio para marcar el tope de la
pila, puesto que los elementos se colocan en casillas consecutivas
a partir de la primera.
O La pila pil = se representa con la estructura:



O   La pila vacía pil = se representa con un cero en el campo que
    indica la posición del tope:




                                                       Evanyeline Brito 11-1029
COLA




       Evanyeline Brito 11-1029
O La cola de impresión


O Las filas que se hacen en los
 supermercados, cines, bancos, Etc.




                                  Evanyeline Brito 11-1029
O   Una cola es una estructura de datos, en la cual solo se pueden
    aplicar estas dos operaciones : colocar un elemento al final, o
    quitar un elemento del principio.

O   Se entiende por cola una estructura de datos en la que se
    añaden nuevos ítems en un extremo y se suprimen ítems
    viejos en el opuesto




                                                       Evanyeline Brito 11-1029
TAD Cola[ TipoC ]
{ inv: TRUE }

Constructoras:
inicCola: Cola

Modificadoras:
adicCola: Cola x TipoC Cola
elimCola: Cola Cola

Analizadoras:
infoCola: Cola TipoC
vaciaCola: Cola int

Destructora:
destruirCola: Cola




                              Evanyeline Brito 11-1029
TAD ColaP[ TipoCP ]
[ x1«p1] [ x2«p2] .... [ xn«pn]
{ inv: pi pk , i < k }

Constructoras:
inicColaP: ColaP

Modificadoras:
adicColaP: ColaP x TipoCP x int ColaP
elimColaP: ColaP ColaP

Analizadoras:
infoColaP: ColaP TipoCP
vaciaColaP: ColaP int

Destructora:
destruirColaP: ColaP




                                        Evanyeline Brito 11-1029
O   La diferencia semántica está en que el elemento eliminado de
    la lista no es, necesariamente, el primero que fue añadido. Más
    bien, es el elemento de la cola que tiene la prioridad más alta.
    En la implementación de la Cola de Prioridad no se especifica
    ni qué son las prioridades ni cómo se comparan entre ellas.
    Depende de los elementos que haya en la cola.

O   Por ejemplo, si los elementos de la cola tienen
    nombres, podemos elegirlos en orden alfabético. Si son
    puntuaciones de bolos, podemos ir desde la más alta hasta la
    más baja, pero si son puntuaciones de golf, iríamos desde la
    más baja hasta la más alta. Mientras podamos comparar los
    elementos de la cola, podremos encontrar y eliminar el de
    mayor prioridad.




                                                        Evanyeline Brito 11-1029
I
                                                   .

O Si se representa una cola con un vector, las rutinas que
   implementan las operaciones del TAD tienen la
   siguiente complejidad:
                   inicCola      O( 1 )
                     adicCola    O( 1 )
                     elimCola    O( N
                                   )
                     infoCola    O( 1 )
                     vaciaCola   O( 1 )
 La ineficiencia en la operación que elimina un elemento (
elimCola - O( n ) ) se debe a la necesidad de desplazar todos los
elementos de la estructura, para ocupar el lugar liberado después
de sacar el primero. Una posibilidad para evitar este movimiento
es marcar los lugares dentro del arreglo donde comienza y
termina la cola.




                                                        Evanyeline Brito 11-1029

Más contenido relacionado

La actualidad más candente

Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
Face plates (1)
Face plates (1)Face plates (1)
Face plates (1)Yaiyo
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicasPatriciaU
 
Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazadayordy Macoto
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)José Antonio Sandoval Acosta
 
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
DISPOSITIVOS DE CAPA 2 DEL MODELO OSIDISPOSITIVOS DE CAPA 2 DEL MODELO OSI
DISPOSITIVOS DE CAPA 2 DEL MODELO OSIEwing Ma
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Mapa conceptual de colas..
Mapa conceptual de colas..Mapa conceptual de colas..
Mapa conceptual de colas..Luis Gonzalez
 

La actualidad más candente (20)

Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Face plates (1)
Face plates (1)Face plates (1)
Face plates (1)
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
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
 
Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazada
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Pt7seccion2
Pt7seccion2Pt7seccion2
Pt7seccion2
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Tipos De Datos Abstractos Colas
Tipos De Datos Abstractos ColasTipos De Datos Abstractos Colas
Tipos De Datos Abstractos Colas
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
Colas
ColasColas
Colas
 
S01. diodo semiconductor
S01. diodo semiconductorS01. diodo semiconductor
S01. diodo semiconductor
 
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
DISPOSITIVOS DE CAPA 2 DEL MODELO OSIDISPOSITIVOS DE CAPA 2 DEL MODELO OSI
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Mapa conceptual de colas..
Mapa conceptual de colas..Mapa conceptual de colas..
Mapa conceptual de colas..
 

Similar a Fila,pila y cola ..

Similar a Fila,pila y cola .. (20)

Saiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosaSaiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosa
 
Colas, filas
Colas, filasColas, filas
Colas, filas
 
Dionely torres 11 1150
Dionely torres 11 1150Dionely torres 11 1150
Dionely torres 11 1150
 
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 datos Estructura de datos
Estructura de datos
 
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
 
Gilmora
GilmoraGilmora
Gilmora
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
Tda y heaps
Tda y heapsTda y heaps
Tda y heaps
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas
ListasListas
Listas
 
Operaciones con colas
Operaciones con colasOperaciones con colas
Operaciones con colas
 
Colas y listas generales
Colas y listas generalesColas y listas generales
Colas y listas generales
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 

Fila,pila y cola ..

  • 1. Estructura de Datos Lista,pila y cola Evanyeline Brito 11-1029
  • 2. LISTA Evanyeline Brito 11-1029
  • 3. O Lista de compra O Lista de invitados Evanyeline Brito 11-1029
  • 4. O Una lista consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior. O Una lista es una colección homogénea de elementos con una relación lineal entre ellos. Es decir, cada elemento de la lista (excepto el primero) tiene un único elemento predecesor y cada elemento (excepto el último) tienen un elemento suceso Evanyeline Brito 11-1029
  • 5. O Se define la ventana de una lista como el lugar de la secuencia sobre el cual se van a realizar las operaciones que se apliquen al objeto abstracto. De cierta manera, se puede ver como el único punto de la lista visible al usuario. Esto implica que el TAD, además de las operaciones usuales, debe tener operaciones para mover la ventana, de tal manera que se pueda colocar sobre cualquier elemento de la lista y afectarlo de la manera deseada Evanyeline Brito 11-1029
  • 6. TAD ListOrd[ TipoLO ] e1, ..., en { inv: ei ei+1, i 1 i < n } Constructoras: inicListOrd: ListOrd Modificadoras: insListOrd: ListOrd x TipoLO ListOrd elimListOrd: ListOrd x TipoLO ListOrd Analizadoras: infoListOrd: ListOrd x int TipoLO longListOrd: ListOrd int estaListOrd ListOrd x TipoLO int Evanyeline Brito 11-1029
  • 7. O Vectores : en esta representación, los elementos de la lista se sitúan consecutivamente en un vector. Maneja además dos campos adicionales que indican la longitud actual y la posición de la ventana. O Listas doblemente enlazadas: en esta representación, la lista tiene un nodo con apuntadores al primer elemento, al último y al elemento de la ventana. Los nodos, por su parte, se encuentran doblemente encadenados entre sí, para permitir que las modificadoras se puedan implementar con algoritmos O( 1 ) Evanyeline Brito 11-1029
  • 8. PILA Evanyeline Brito 11-1029
  • 9. O Ejemplo: En una torre de discos, para sacar el disco de hasta abajo, tienes que sacar primero todos los que están arriba de el, y es mas lata cuando no sabes que disco es, tienes que buscar de uno por uno e irlos sacando Evanyeline Brito 11-1029
  • 10. O Pilas son un tipo especial de lista, conocidas como listas LIFO (Last In, First Out: el último en entrar es el primero en salir). Los elementos se "amontonan" o apilan, de modo que sólo el elemento que está encima de la pila puede ser leído, y sólo pueden añadirse elementos encima de la pila. O Una pila es una estructura de datos en la cual solo se pueden hacer 2 operaciones : colocar elemento al final,o quitar un elemento del final. Evanyeline Brito 11-1029
  • 11. TAD Pila[ TipoP ] { inv: TRUE } Constructoras: inicPila: Pila Modificadoras: adicPila: Pila x TipoP Pila elimPila: Pila Pila Analizadoras: infoPila: Pila TipoP vaciaPila: Pila int Destructora: destruirPila: Pila Evanyeline Brito 11-1029
  • 12. En esta implementación se utiliza un objeto abstracto del TAD Lista para representar una pila. El esquema de representación es el siguiente: O La pila pil = se representa con la lista < e1, e2 ... eN>. O La pila vacía (pil = ) se representa internamente como una lista sin elementos (pil = < >). Evanyeline Brito 11-1029
  • 13. Un vector es una buena manera de representar una pila, si se conoce con anterioridad el número máximo de elementos que va a contener. Sólo se necesita algún medio para marcar el tope de la pila, puesto que los elementos se colocan en casillas consecutivas a partir de la primera. O La pila pil = se representa con la estructura: O La pila vacía pil = se representa con un cero en el campo que indica la posición del tope: Evanyeline Brito 11-1029
  • 14. COLA Evanyeline Brito 11-1029
  • 15. O La cola de impresión O Las filas que se hacen en los supermercados, cines, bancos, Etc. Evanyeline Brito 11-1029
  • 16. O Una cola es una estructura de datos, en la cual solo se pueden aplicar estas dos operaciones : colocar un elemento al final, o quitar un elemento del principio. O Se entiende por cola una estructura de datos en la que se añaden nuevos ítems en un extremo y se suprimen ítems viejos en el opuesto Evanyeline Brito 11-1029
  • 17. TAD Cola[ TipoC ] { inv: TRUE } Constructoras: inicCola: Cola Modificadoras: adicCola: Cola x TipoC Cola elimCola: Cola Cola Analizadoras: infoCola: Cola TipoC vaciaCola: Cola int Destructora: destruirCola: Cola Evanyeline Brito 11-1029
  • 18. TAD ColaP[ TipoCP ] [ x1«p1] [ x2«p2] .... [ xn«pn] { inv: pi pk , i < k } Constructoras: inicColaP: ColaP Modificadoras: adicColaP: ColaP x TipoCP x int ColaP elimColaP: ColaP ColaP Analizadoras: infoColaP: ColaP TipoCP vaciaColaP: ColaP int Destructora: destruirColaP: ColaP Evanyeline Brito 11-1029
  • 19. O La diferencia semántica está en que el elemento eliminado de la lista no es, necesariamente, el primero que fue añadido. Más bien, es el elemento de la cola que tiene la prioridad más alta. En la implementación de la Cola de Prioridad no se especifica ni qué son las prioridades ni cómo se comparan entre ellas. Depende de los elementos que haya en la cola. O Por ejemplo, si los elementos de la cola tienen nombres, podemos elegirlos en orden alfabético. Si son puntuaciones de bolos, podemos ir desde la más alta hasta la más baja, pero si son puntuaciones de golf, iríamos desde la más baja hasta la más alta. Mientras podamos comparar los elementos de la cola, podremos encontrar y eliminar el de mayor prioridad. Evanyeline Brito 11-1029
  • 20. I . O Si se representa una cola con un vector, las rutinas que implementan las operaciones del TAD tienen la siguiente complejidad: inicCola O( 1 ) adicCola O( 1 ) elimCola O( N ) infoCola O( 1 ) vaciaCola O( 1 ) La ineficiencia en la operación que elimina un elemento ( elimCola - O( n ) ) se debe a la necesidad de desplazar todos los elementos de la estructura, para ocupar el lugar liberado después de sacar el primero. Una posibilidad para evitar este movimiento es marcar los lugares dentro del arreglo donde comienza y termina la cola. Evanyeline Brito 11-1029