Sunteți pe pagina 1din 11

DOCENTE :

CURSO :

TEMA :

ALUMNOS
Tabla de contenido
INTRODUCCIÓN ...................................................................................................................1
COLAS .................................................................................................................................2
DEFINICION......................................................................................................................2
OPERACIONES BÁSICAS ....................................................................................................3
Inicio: Cola vacía ..............................................................................................................3
IMPLEMENTACION DE UNA COLA CON LISTAS ..................................................................4
ALGORITMO PARA ENCOLAR ELEMENTOS ............................................................................4
ALGORITMO PARA DESENCOLAR ELEMENTOS ......................................................................5
USANDO VECTORES .........................................................................................................6
TIPOS DE COLAS ...............................................................................................................6
IMPLEMENTACION DE COLAS ...........................................................................................6
CONSIDERACIONES ..........................................................................................................7
APROVECHAMIENTO DE LA MEMORIA .............................................................................7
VENTAJAS: ...................................................................................................................7
DESVENTAJAS: .............................................................................................................8
CONCLUSIONES ...................................................................................................................9
INTRODUCCIÓN

En el siguiente informe estaremos hablando sobre las Estructuras FIFO:


Algoritmos para el manejo de bicolas de datos y colas de prioridad, sus
definiciones principales y sus tipos los cuales se nos dieron a investigar.

Nos concentraremos en lo que contiene la gran mayoría de información


sobre COLAS, cuáles son sus definiciones, operaciones, implementación,
códigos, ventajas, desventajas y quizás algunos ejemplos.

1
COLAS

DEFINICION
 Es un conjunto de elementos del cual se pueden suprimir, de un
extremo (llamado la parte delantera, o Frente) y en el que pueden
insertarse elementos del otro extremo (llamado la parte posterior, o
Final de la cola).

 La Cola es una estructura de datos de tipo FIFO (First Input, First Output:
primero en entrar, primero en salir).

 Una cola es una estructura lineal, en la cual los elementos sólo pueden
ser adicionados por uno de sus extremos (el Final); y eliminados o
consultados por el otro (el Frente).

 También hay que tener presente, que el único elemento visible en una
cola es el primero y mientras éste no haya salido (eliminado), no es
posible tener acceso al siguiente.

 Debemos tener ciertas consideraciones al implementar una solución para


las operaciones sobre una cola de datos

 La cola está vacía inicialmente

 La operación Encolar puede ejecutarse siempre, pues no hay límite en la


cantidad de elementos que puede contener una cola.

 La operación Desencolar sólo puede aplicarse si la cola no está vacía: no


hay forma de remover un elemento de una cola que no contiene
elementos.

OJO: “Una cola puede estar vacía, aún si el Frente no es el primer valor de la lista de
datos”

2
OPERACIONES BÁSICAS

 Encolar, o Insert (por el Final).


 Desencolar, o remove (por el Frente).

En una cola, los elementos siempre serán atendidos por el Frente y serán
insertados por el final.

Inicio: Cola vacía

1.- Encolar A
A

2.- Encolar B
A B

3.- Encolar C A B C

4.- Desencolar B C
Elemento

5.- Encolar D
B C
D

6.- Desencolar C
D
Elemento

3
IMPLEMENTACION DE UNA COLA CON LISTAS

Definición de tipos
ELEMENTO = T;
NODO = registro de
info: ELEMENTO;
sgte: puntero a NODO;
fin registro;
POSICION = puntero a NODO;

COLA = registro de
tam: numerico;
prim, ult: POSICIÓN;
fin registro;

ALGORITMO PARA ENCOLAR ELEMENTOS

Algoritmo Encolar (C: cola, X: ELEMENTO, resp: lógico)


temp: POSICION;
INICIO
Llena?(C,resp);
Si resp = cierto entonces
Escribir “Cola llena”;
resp: = falso;
Sino {la cola no está llena, por lo que procedemos a añadir el elemento}
Obtener(temp);
temp .info := X;
temp.sgte := nil; {porque va a ser el último}
Vacía? (C,resp);
si resp = cierto entonces {será el primero}
C.prim: = temp;
sino C.ult.sgte := temp; {será el siguiente al último}
finsi;
C.ult: = temp; {porque es el nuevo último elemento}
C.longitud: = C.longitud + 1; {pues ahora hay un elemento más en
la cola}
finsi;
FIN

4
ALGORITMO PARA DESENCOLAR ELEMENTOS

Algoritmo Desencolar (C: cola, X: ELEMENTO, resp: lógico)


temp: POSICION;
tam: numérico;
INICIO
Vacía?(C,resp);
si resp = cierto entonces
Escribir “Cola vacía”;
resp := falso;
sino
temp := C.prim;
E := temp.info;
Tamaño(C,tam);
si tam = 1 entonces
C.ult := nil;
finsi;
C.prim := temp.sgte; {si sólo había un elemento, será nil}
Liberar(temp);
C.longitud := C.longitud -1;
finsi;
FIN

5
USANDO VECTORES

Si el principio de la cola es fijo en la primera posición del vector y el final es


variante para eliminar un elemento de la cola hay que desplazar todos los
demás una posición.

OJO: Este es el caso en que el Desencolado se vuelve ineficiente; pues se


desarrollan muchas operaciones alrededor de esta tarea.

TIPOS DE COLAS

• Cola simple: Estructura lineal donde los elementos salen en el mismo


orden en que llegan.
• Cola circular: Representación lógica de una cola simple en un arreglo.
• Cola de Prioridades: Estructura lineal en la cual los elementos se
insertan en cualquier posición de la cola y se remueven solamente
por el frente.
• Cola Doble (Bicola): Estructura lineal en la que los elementos se
pueden añadir o quitar por cualquier extremo de la cola (cola
bidireccional).

IMPLEMENTACION DE COLAS

 En los sistemas de tiempo compartido: los recursos (CPU, memoria,


…) se asignan a los procesos que están en cola de espera en el orden
en el que fueron introducidos.
 Colas de impresión: cuando se requiere imprimir varios documentos
a la vez; si la impresora está ocupada, los trabajos se almacenan en

6
una cola según el orden de llegada. En este caso, el algoritmo se
denomina Spool.
 En la Simulación por computadora de situaciones reales; por ejemplo
en una cola de clientes de un supermercado o el tiempo de espera
para ser atendidos por un operador de una línea telefónica.

CONSIDERACIONES
 Debemos tener ciertas consideraciones al implementar una solución
para las operaciones sobre una cola de datos:
 El resultado de un intento no válido de remover un elemento
de una cola vacía se denomina subdesbordamiento.
 La operación vacía siempre es aplicable.
 La representación de una cola como un tipo abstracto de datos
es directa.

APROVECHAMIENTO DE LA MEMORIA

Las colas pueden necesitar cantidad de memoria sobre todo si se diseña


con un gran número de elementos. Para evitar este desperdicio de
memoria, existe un procedimiento para diseñar las colas mediante una lista
circular.

VENTAJAS:

 Velocidad: Las colas de datos son un método rápido de comunicación


entre procesos. Colas de datos libres puestos de trabajo de realizar
un trabajo, que puede conducir a un mejor tiempo de respuesta y
una mejora general en el rendimiento del sistema. Colas de datos
sirven como la forma más rápida de comunicación asíncrona entre
dos tareas diferentes, ya que hay menos que con la base de datos de
las áreas de archivos y datos.
 Flexibilidad: Las colas son flexibles, que requieren no comunicaciones
de programación. El programador no necesita ningún conocimiento
de la comunicación entre procesos. Colas de datos permiten que los
equipos manejar múltiples tareas. La cola puede permanecer activa
cuando hay ninguna entrada, lista para procesar las entradas de
datos cuando sea necesario.
 Múltiples trabajos: Algunos trabajos tienen restricciones de
rendimiento y no pueden manejar todas las entradas, por lo que las
entradas de datos son repartidas por múltiples trabajos. Por ejemplo,

7
representante de servicio al solo cliente puede ayudar a un cliente a
la vez, así que la cola puede difundir las solicitudes de servicio al
cliente entre los representantes, para el procesamiento más rápido.

DESVENTAJAS:

 La implementación de las colas de prioridad es costosa en algunas


implementaciones.
 Si se mantiene la lista desordenada, la inserción queda constante,
pero la eliminación y la búsqueda exigen una búsqueda lineal.
 Si se escoge ordenar la lista, entonces es la inserción la operación que
requiere una búsqueda lineal a cambio del coste constante de la
consulta, mientras que en la eliminación depende de la
representación concreta de la lista.
 Una operación intermedia es mantener la lista desordenada durante
las inserciones y ordenarla a continuación, siempre que todas las
inserciones se hagan al principio y las consultas y las eliminaciones a
continuación.

8
CONCLUSIONES

 Una cola es un TDA (Tipo de dato abstracto) dedicado al


almacenamiento y manipulación de elementos.

 Como TDA, su funcionalidad es siempre la misma,


independientemente de la implementación que se haya utilizado.

 Su funcionalidad cumple con la regla FIFO (el orden de salida de


los elementos es el mismo que el de entrada).

 Esto se debe a que las colas están diseñadas para devolver los
elementos ordenados tal como llegan. Para esto, las colas poseen
un punto de acceso y otro de salida que lógicamente están
ubicados en extremos opuestos. Siempre vemos el elemento que
está primero o al frente.

S-ar putea să vă placă și