top of page

cola circular 

La solución que se describe implica reutilizar las componentes de

l vector que contenían elementos ya eliminados. Esto es, cuando durante el

proceso de añadido lleguemos al final del

vector,comenzaremos al llenar

COLAS CIRCULARES

proceso de añadido lleguemos al inal del vector,comenzaremos a llenar

de nuevo las componentes iniciales del mismo si se encuentran vacías.

Para lograr esto manejaremos el vector como si fuese un “vector circular”.

Esto significa que no consideraremos la componente MAX del

vector como la última del mismo, sino que consideraremos que la

siguiente componente a ésta es otra vez la primera del vector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DEFINICIÓN

# define MAX número máximo de elementos

COLAS CIRCULARES

struct {

tipo_base datos [MAX];

int frente,final;

} cola;

struct cola c;

 

Con esta definición de Cola

las operaciones asociadas especificadas

en el TAD quedarían del siguiente modo:

Crea una cola vacía.

COLAS CIRCULARES

Crea

una

cola

vacía.

cola CrearColacirc (struct cola *c)

{

(*c).frente = 0;

(*c).final = MAX-1;

}

 

Una cola puede almacenar lo que nosotros queramos, números, personas, documentos, cualquier cosa. Esta estructura de datos tiene muchas aplicaciones en la informática al igual que la pila, por ejemplo cuando mandan a imprimir varios documentos a una impresora, existe una cola de impresión que sigue la filosofía, se imprimen los primeros documentos y si quiero imprimir un nuevo documento se adiciona al final de todos los documentos que están esperando a imprimirse.

 

 

Una vez comprendido en concepto ahora veamos como se implementa esto en un lenguaje de programación, por ahora lo implementaremos en Java. Java en sus librerías ya tiene la forma de implementar Colas, nosotros ahora haremos como si no existiera, es decir crearemos nuestra versión, que es lo que generalmente se hace cuando se aprende colas en la universidad. Pues bien existen dos formas de implementar para que la cola sea o bien estática (reservamos un espacio fijo en memoria) o bien dinámica (el tamaño en memoria va creciendo según se requiere), se implementa con arrays o con listas enlazadas respectivamente. Nosotros implementaremos haciendo de un array bidimensional es decir de modo estático y al decir estático estamos diciendo que tendrá un limite para almacenar datos en la cola.

 

 

 

bottom of page