Está en la página 1de 10

COLAS Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operacin de insercin

push se realiza por un extremo y la operacin de extraccin pop por el otro. Tambin se le llama estructura FIFO (del ingls First In First Out), debido a que el primer elemento en entrar ser tambin el primero en salir. Las colas se utilizan en sistemas informticos, transportes y operaciones de investigacin (entre otros), dnde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento.

Usos concretos de la cola La particularidad de una estructura de datos de cola es el hecho de que slo podemos acceder al primer y al ltimo elemento de la estructura. As mismo, los elementos slo se pueden eliminar por el principio y slo se pueden aadir por el final de la cola.

Ejemplos de colas en la vida real seran: personas comprando en un supermercado, esperando para entrar a ver un partido de bisbol, esperando en el cine para ver una pelcula, una pequea peluquera, etc. La idea esencial es que son todos lneas de espera. Colas de impresin.

En estos casos, el primer elemento de la lista realiza su funcin (pagar comida, pagar entrada para el partido o para el cine) y deja la cola. Este movimiento est representado en la cola por la funcin pop o desencolar. Cada vez que otro elemento se aade a la lista de espera se aaden al final de la cola representando la funcin push o encolar. Hay otras funciones auxiliares para ver el tamao de la cola, para ver si est vaca en el caso de que no haya nadie esperando (ColaVacia) o para ver el primer elemento de la cola (Frente).

Indexacin base-cero (0): En este modo el primer elemento del vector ser la componente cero ('0') del mismo, es decir, tendr el ndice '0'. En consecuencia, si el vector tiene 'n' componentes la ltima tendr como ndice el valor 'n-1'. Java y el lenguaje C es un ejemplo tpico que utiliza este modo de indexacin.

Operaciones Bsicas

Crear: se crea la cola vaca. Encolar (aadir, entrar, push): se aade un elemento a la cola. Se aade 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.

REPRESENTACION DE LA ESTRUCTURA COLA

Nota: No confundir los elementos de la Cola con la posicin o ndice de la Misma

REPRESENTACION GRAFICA DE COLA VACIA

REPRESENTACION GRAFICA DE COLA CON ELEMENTOS

REPRESENTACION GRAFICA DE COLA LLENA

Para acceder a los elementos de la estructura es necesario hacer referencia al nombre e indicar la posicin. Z= Cola[Frente] Cola [Final]= 9 Nota: En adelante se hace referencia a las estructuras creadas con base a la utilizacin de clases, mtodos y el nivel de accesibilidad de los mismos.

I DECLARACION DE LA ESTRUCTURA

1.1CREACION DE LA COLA

1.2 Definir las variables que manipularn la estructura. En esta parte del diseo es necesario definir las variables ndices, variables de clculos y operaciones que regirn los mtodos con mbito global y el nivel de visibilidad. Para darle una correcta documentacin al diseo es recomendable comentar el uso que tendr dicha variable en la estructura que se est diseando publico Entero Cola []; // Estructura de la Cola publico Entero Final, Frente, Max , Elem, pos; // variables para la cola

//Final : El ultimo elemento insertado en la cola //Frente: El primer elemento de la cola //Max : Mximo de espacios que tiene la Cola //Elem : Elemento que se agrega a la cola (Tecleado por el usuario) // pos : determina la posicin de un dato consultado

II INICIALIZACIN DE LA ESTRUCTURA

Elaboracin de un mtodo constructor para inicializar la estructura. 2.1 Se toman como referencia para el tamao de la cola el parmetro contenido en las variables Espacios, el dato de este parmetro es obtenido a travs de otra clase Que llamaremos MenuPpal donde el usuario determina el tamao de la Cola. 2.2 Se indica nivel de acceso pblico a la estructura creada. 2.3 Creacin de la Cola se representa como estructura de datos definida por el usuario 2.4 Se inicializan los valores de las variables de la estructura. //----- Contructor -------\\ publico Cola (entero Espacios) // se recibe como parmetro los Espacios de la pila Inicio Cola = new entero [Espacios]; // Asignamos los espacios en la Pila Max = Espacios - 1; cola.length-1 // Se determina la capacidad mxima de almacenamiento Final = -1; Frente=-1; Fin //------- Fin del constructor ------\\

III MTODOS Los mtodos son subrutinas que gobernaran a la estructura de datos creada, los mtodos permitirn definir el comportamiento de la estructura durante la ejecucin del programa.

Las operaciones cotidianas que realizan las pilas son las siguientes Insercin ( Push) Eliminacin (Pop) Bsqueda Visualizacin

Inicialmente definiremos los mtodos que indicarn el estado de la estructura en este caso nos interesa saber cuando la pila est llena y cuando esta vaca para lo cual realizaremos mtodos booleanos que determinar si es falso o verdadero el estado consultado.

3.1 Mtodo para determinar si una cola esta vaca.

Publico booleano ColaVacia() Inicio Si ((Frente==-1) y (Final==-1)) o (Frente > Final) Inicio retorne Verdadero; sino retorne falso; Fin Si Fin Metodo

3.2 Mtodo para determinar si una Cola est Llena.

Publico booleano ColaLLena() Inicio Si (Final==Max) Inicio retorne Verdadero; sino returne falso; Fin Si Fin Metodo Explicacin: La variable Max est almacenado la capacidad mxima de almacenamiento de la Pila, por lo tanto se comparan el ndice en este caso la variable Top con la capacidad en caso tal que sean iguales nos indicara que la estructura est Llena. 3.3 Mtodo para insertar un elemento a la Pila. public void Encolar() Inicio Si(!ColaLlena()) Inicio Si(ColaVacia()) Inicio Frente= Frente+1; Final= Final +1; Escriba("Digite elemento ");Lea(Elem) Cola[Final]=Elem; Fin Sino Inicio Final=Final+1; Escriba( "Digite elemento ");Lea(Elem); Cola[Final]=Elem; Fin Fin Sino Escriba("La cola esta llena "); Fin Metodo

3.4 Mtodo para Eliminar un elemento de la Cola. Publico entero Pop () Inicio Entero dato=-1; Entero Aux; Si(!ColaVacia()) // Si la cola no esta vacia entonces .... Si (Frente = = Final) Aux=Cola[Frente]; Frente=-1; Final=-1; retornar Aux; Sino Aux=Cola[Frente]; Para (entero i=0;i<= Final; i++) Incio Cola[i]= Cola[i+1]; Fin para Final= Final-1; retornar Aux; Fin si Fin Si Sino Escriba(La cola esta vacia no hay elementos que eliminar"); retornar Aux; Fin Metodo

También podría gustarte