Colas, filas

Click here to load reader

  • date post

    28-Jul-2015
  • Category

    Documents

  • view

    470
  • download

    1

Embed Size (px)

Transcript of Colas, filas

1. Estructura de DatosLista, pila y cola Marielys Rodriguez G. 11-1075 Saira T. Isaac H. 11-1077 2. LISTA 3. Objetos reales que se puedenmodelar con la estructura lista Lista de inventario Lista de animales 4. Definiciones de lista Una lista es una estructura de datos homogneay dinmica, que va a estar formada por una secuencia deelementos, donde cada uno de ellos va seguido de otro o deninguno. Lista: coleccin homognea de elementos con una relacinlineal entre ellos. Es decir, cada elemento de la lista(excepto el primero) tiene un nico elemento predecesor ycada elemento (excepto el ltimo) tienen un elemento suceso 5. TAD listaTAD ListOrd[ TipoLO ]e1, ..., en{ inv: ei ei+1, i 1 i < n }Constructoras:inicListOrd: ListOrdModificadoras:insListOrd: ListOrd x TipoLO ListOrdelimListOrd: ListOrd x TipoLO ListOrdAnalizadoras:infoListOrd: ListOrd x int TipoLOlongListOrd: ListOrd intestaListOrd ListOrd x TipoLO int 6. Relacin entre los conceptos:Ventana y el de Lista Con relacin a las listas estas se pueden organizar en manera ordenada y con respect a las ventanas, las ventanas poseen caractersticas homogneas al momento de su desarrollo. Adems aqu vemos cuales atributos y operaciones se van a realizar. 7. Implementaciones de Listas Vectores : en esta representacin, los elementos de la lista sesitan consecutivamente en un vector. Maneja adems doscampos adicionales que indican la longitud actual y la posicinde la ventana. Listas doblemente enlazadas: en esta representacin, la listatiene un nodo con apuntadores al primer elemento, al ltimo yal elemento de la ventana. Los nodos, por su parte, seencuentran doblemente encadenados entre s, para permitirque las modificadoras se puedan implementar con algoritmosO( 1 ). 8. Describir los mecanismos mediante loscuales los lenguajes de programacinpermiten implementar las listas.Implementacin Para representar en lenguaje C estaestructura de datos se utilizarn punteros, un tipo de datosque suministra el lenguaje. Se representar una lista vacacon la constante NULL. Se puede definir la lista enlazadade la siguiente manera: struct lista { int clave; structlista*sig; }; 9. Describir cmo los lenguajes que nomanejan apuntadores simulan laslistas doblemente enlazadas. Cada nodo apunta al siguiente y al anterior. Duplica el uso de la memoria necesaria para los punteros. Duplica el coste de manejo de punteros al insertar y eliminar. La eliminacin se simplifica . No es necesario buscar el elemento anterior. 10. PILA 11. Objetos reales que se puedenmodelar con la estructura Pila Almacn de libros Agrupacin de ladrillos Cuando se montan y desmontan cajas de un camin 12. Definiciones de Pila 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 slo elelemento que est encima de la pila puede ser ledo, y slopueden aadirse elementos encima de la pila. Una pila es una estructura de datos en la cual solo se puedenhacer 2 operaciones : colocar elemento al final o quitar unelemento del final. 13. TAD Pila 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 14. Implementar las pilas a travsde listas y vectores A traves de vectores: En esta implementacin se utiliza un objeto abstracto del TAD Lista para representar una pila. El esquema de representacin es el siguiente: La pila pil = se representa con la lista < e1, e2 ... eN>. La pila vaca (pil = ) se representa internamente como una lista sin elementos (pil = < >). 15. Un vector es una buena manera de representar una pila, si seconoce con anterioridad el nmero mximo de elementos que va acontener. Slo se necesita algn medio para marcar el tope de lapila, puesto que los elementos se colocan en casillas consecutivasa partir de la primera. La pila pil = se representa con la estructura: La pila vaca pil = se representa con un cero en el campo queindica la posicin del tope: 16. COLA 17. Cola de impression Filas en Banco Filas de los supermercados 18. Una cola es una estructura de datos, en la cual solo se puedenaplicar estas dos operaciones : colocar un elemento al final, oquitar un elemento del principio. Se entiende por cola una estructura de datos en la que seaaden nuevos tems en un extremo y se suprimen tems viejosen el opuesto. 19. TAD Cola[ TipoC ]{ inv: TRUE }Constructoras:inicCola: ColaModificadoras:adicCola: Cola x TipoC ColaelimCola: Cola ColaAnalizadoras:infoCola: Cola TipoCvaciaCola: Cola intDestructora:destruirCola: Cola 20. TAD ColaP[ TipoCP ][ x1p1] [ x2p2] .... [ xnpn]{ inv: pi pk , i < k }Constructoras:inicColaP: ColaPModificadoras:adicColaP: ColaP x TipoCP x int ColaPelimColaP: ColaP ColaPAnalizadoras:infoColaP: ColaP TipoCPvaciaColaP: ColaP intDestructora:destruirColaP: ColaP 21. La diferencia semntica est en que el elemento eliminado dela lista no es, necesariamente, el primero que fue aadido.Ms bien, es el elemento de la cola que tiene la prioridad msalta. En la implementacin de la Cola de Prioridad no seespecifica ni qu son las prioridades ni cmo se comparanentre ellas. Depende de los elementos que haya en la cola. Por ejemplo, si los elementos de la cola tienennombres, podemos elegirlos en orden alfabtico. Si sonpuntuaciones de bolos, podemos ir desde la ms alta hasta lams baja, pero si son puntuaciones de golf, iramos desde lams baja hasta la ms alta. Mientras podamos comparar loselementos de la cola, podremos encontrar y eliminar el demayor prioridad. 22. Si se representa una cola con un vector, las rutinas queimplementan las operaciones del TAD tienen la siguientecomplejidad: inicColaO( 1 ) adicColaO( 1 ) elimColaO( N ) infoColaO( 1 ) vaciaCola O( 1 )La ineficiencia en la operacin que elimina un elemento ( elimCola - O(n ) ) se debe a la necesidad de desplazar todos los elementos de laestructura, para ocupar el lugar liberado despus de sacar el primero.Una posibilidad para evitar este movimiento es marcar los lugaresdentro del arreglo donde comienza y termina la cola.