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 (20)

Colas
ColasColas
Colas
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
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
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
PILAS
PILASPILAS
PILAS
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos 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)
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Datos
DatosDatos
Datos
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilas
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
COLAS
COLASCOLAS
COLAS
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
Pilas
PilasPilas
Pilas
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
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
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 

Destacado (20)

Edith piaf
Edith piafEdith piaf
Edith piaf
 
.
..
.
 
Ecología Mediática
Ecología MediáticaEcología Mediática
Ecología Mediática
 
Menu
MenuMenu
Menu
 
Arduino user manual_es
Arduino user manual_esArduino user manual_es
Arduino user manual_es
 
Sectores económicos
Sectores económicosSectores económicos
Sectores económicos
 
Corporacion deportes-quindio-
Corporacion deportes-quindio-Corporacion deportes-quindio-
Corporacion deportes-quindio-
 
Africamarti
AfricamartiAfricamarti
Africamarti
 
Papg
PapgPapg
Papg
 
Cultura japonesa
Cultura japonesaCultura japonesa
Cultura japonesa
 
Tlc colombia eua
Tlc colombia euaTlc colombia eua
Tlc colombia eua
 
Funciones para varios aa
Funciones para varios aaFunciones para varios aa
Funciones para varios aa
 
2 power de investigacion
2 power de investigacion2 power de investigacion
2 power de investigacion
 
Redes de valor y calidad
Redes de valor y calidadRedes de valor y calidad
Redes de valor y calidad
 
7 pasos para una gestión eficaz
7 pasos para una gestión eficaz7 pasos para una gestión eficaz
7 pasos para una gestión eficaz
 
Somos Lemon
Somos LemonSomos Lemon
Somos Lemon
 
Don juan tenorio
Don juan tenorioDon juan tenorio
Don juan tenorio
 
Trabajo de etika
Trabajo de etikaTrabajo de etika
Trabajo de etika
 
Francy julieth diapocitivas
Francy julieth   diapocitivasFrancy julieth   diapocitivas
Francy julieth diapocitivas
 
Empresa de servicios mateo h
Empresa de servicios mateo hEmpresa de servicios mateo h
Empresa de servicios mateo h
 

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
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
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
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
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 

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