Programacion de Colas

9

description

Programacion

Transcript of Programacion de Colas

Page 1: Programacion de Colas
Page 2: Programacion de Colas
Page 3: Programacion de Colas

Facultad: Ingeniería Carrera: Ingeniería en Computación Cátedra: Análisis de Algoritmo Prof.: Ing. Elvia Sánchez Alumno : Miguel Uzcategui CI.- 16.534.910 Contáctenos: [email protected]

V

La Computación es una ciencia muy amplia que abarca diferentes ramas como el área de Infraestructura, Equipos, Redes. Así como el área de software, en cada uno de estos casos se hace necesaria la manipulación de datos y es así como continuamos hablando acerca de las estructuras de almacenamiento, siendo este edición dedicada a las Colas. Las Colas son otro de los Tipos de las Estructuras caracterizadas 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. Según la necesidad que se tenga de obtener el dato se utilizará el algoritmo más óptimo según así se requiera. La informática involucra al tratamiento automatizado de la información de una forma útil y oportuna.

Page 4: Programacion de Colas

Una cola 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.

* Crear: se crea la cola vacía.

* Encolar (añadir, entrar, push): se añade un elemento a la cola. Se añade al final de esta. * Desencolar (sacar, salir, pop): 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 primero elemento que entró.

Page 5: Programacion de Colas

Colas de Prioridad En ellas, los elementos se atienden en el orden indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma prioridad, se atenderán de modo convencional según la posición que ocupen. Colas Lineales La cola lineal es un tipo de almacenamiento creado por el usuario que trabaja bajo la técnica FIFO (primero en entrar primero en salir). Las operaciones que podemos realizar en una cola son las de extracción. Los algoritmos para llevar a cabo dichas operaciones se especifican más adelante.

Es una estructura de datos en la que los elementos están de forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente desde la cabeza del anillo que es una posición distinguida. Existen dos operaciones de rotaciones, una en cada sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la cabeza actual.

Page 6: Programacion de Colas

Es una estructura de datos en la cual las operaciones de agregar y retirar se practican por ambos lados y por la forma en que se realizan las operaciones, puede comportarse como pila o como cola. La forma de operar de una cola doble es así: se tiene un nuevo elemento que desea agregarse a la cola, éste podría hacerlo de tal forma que ocupe la primera posición o la última, los elementos que se encuentran al principio y al final de la cola pueden retirarse.

Procedure Cola_insertar (var Cola : tipo_cola; elem : tipo_dato; var error : boolean); var ptr_aux : ptr_nodo_cola; begin error:= Maxavail < sizeof(tnodo_cola); if (not error) then begin new (ptr_aux); ptr_aux^.dato := elem; ptr_aux^.enlace := nil; if (Cola_vacía (cola)) then cola.frente := ptr_aux else cola.final^.enlace := ptr_aux; cola.final := ptr_aux; end end;

Page 7: Programacion de Colas

Procedure Cola_retirar (var Cola : tipo_cola; var elem : tipo_dato); var ptr_aux : ptr_nodo_cola; begin ptr_aux := cola.frente; cola.frente := cola.frente^.enlace; if (cola.frente = nil) then cola.final := nil; elem := ptr_aux^.dato; dispose (ptr_aux); end;

Function Cola_vacia (Cola : tipo_cola); begin Cola_vacía := (cola.frente=nil) and (cola.final=nil); end; Procedure Cola_vaciar (var Cola : tipo_cola); var e: tipo_dato; begin while not(Cola_vacía(cola)) do Cola_retirar(cola,e); end;

Page 8: Programacion de Colas
Page 9: Programacion de Colas

http://es.wikipedia.org/wiki/Cola_%28inform%C3% A1tica%29 http://www.programacion.com/articulo/estructuras_de_ datos_y_algoritmos_en_java_309/5 http://es.wikibooks.org/wiki/Programaci%C3%B3n_ en_C%2B%2B/Librer%C3%ADa_Est%C3%A1ndar_ de_Plantillas/Colas http://www.buenastareas.com/ensayos/Programacio n-De-Colas/402410.html