ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Colas


Enviado por   •  11 de Julio de 2013  •  Informes  •  988 Palabras (4 Páginas)  •  319 Visitas

Página 1 de 4

COLA:

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. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas.

Usos concretos de la cola

La particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.

Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.

En estos casos, el primer elemento de la lista realiza su función (pagar comida, pagar entrada para el partido o para el cine) y deja la cola. Este movimiento está representado en la cola por la función pop o desencolar. Cada vez que otro elemento se añade a la lista de espera se añaden al final de la cola representando la función push o encolar. Hay otras funciones auxiliares para ver el tamaño de la cola (size), para ver si está vacía en el caso de que no haya nadie esperando (empty) o para ver el primer elemento de la cola (front).

public void inserta(Elemento x) {

Nodo Nuevo;

Nuevo = new Nodo(x, null);

if (NodoCabeza == null) {

NodoCabeza = Nuevo;

} else {

NodoFinal.Siguiente = Nuevo;

}

NodoFinal = Nuevo;

}

public Elemento cabeza() throws IllegalArgumentException {

if (NodoCabeza == null) {

throw new IllegalArgumentException();

} else {

return NodoCabeza.Info;

}

}

public Cola() {

// Devuelve una Cola vacía

NodoCabeza = null;

NodoFinal = null;

}

Cola de prioridades (estructura de datos)

Una cola de prioridades es una estructura de datos en la que 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.

Qué son las colas de prioridad

Una cola de prioridad es una estructura de datos que permite al menos las siguientes dos operaciones: insertar, que añade elementos a la cola, y eliminar mínimo, que busca, devuelve y elimina el elemento mínimo de la cola.

La implantación de la cola de prioridad en la biblioteca de clases de DSTool se realiza mediante un montículo binario.

Para que una estructura sea un montículo binario debe cumplir dos propiedades:

* Un montículo es un árbol binario completamente lleno, con la posible excepción del nivel más bajo, el cual se rellena de izquierda a derecha. Estos árboles se denominan árboles binarios completos.

* Todo nodo debe ser menor que todos sus descendientes. Por lo tanto, el mínimo estará en la raíz y su búsqueda y eliminación se podrá realizar rápidamente.

Los árboles binarios completos son muy regulares, lo que permite que los montículos puedan ser representados mediante simples arrays sin necesidad de punteros. En una representación con arrays los hijos de un elemento colocado en la posición i estarían en las posiciones 2i y uego el padre es A.

Cola circular:

Una cola circular o anillo 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.

Doble cola:

Una cola doble 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 la siguiente: 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.

Por la forma como se agregan y retiran elementos , no existe un método para la doble cola, aunque es posible practicar los métodos PEPS( Primeras Entradas Primeras Salidas) y UEPS (Ultimas Entradas Primeras Salidas).

Para indicar uno de los extremos de la cola doble por donde se agregarán o retirarán elementos, se utiliza un apuntador (U) y para el otro extremo se utiliza un apuntador (P). Para delimitar el área de implementación se tienen los apuntadores MAX y MIN, de idéntica forma como la pila y la cola para detectar la cola doble llena.

La cola doble estará vacía cuando P = Vacío.

Operaciones con colas:

Las operaciones que nosotros podemos realizar sobre una cola son las siguientes:

* Inserción.

* Extracción.

Las inserciones en la cola se llevarán a cabo por atrás de la cola, mientras que las eliminaciones se realizarán por el frente de la cola (hay que recordar que el primero en entrar es el primero en salir).

Representación en memoria:

Podemos representar a las colas de dos formas :

* Como arreglos

* Como listas ordenadas

En esta unidad trataremos a las colas como arreglos de elementos, en donde debemos definir el tamaño de la cola y dos apuntadores, uno para accesar el primer elemento de la lista y otro que guarde el último. En lo sucesivo, al apuntador del primer elemento lo llamaremos F, al de el último elemento A y MAXIMO para definir el número máximo de elementos en la cola.

...

Descargar como  txt (6 Kb)  
Leer 3 páginas más »
txt