Vous êtes sur la page 1sur 8

TAD COLA

TAD COLA y Particularidades de JAVA


Objetivo: Comprender el concepto de abstraccin de datos aplicado al TAD PILA

1
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

TAD COLA
El apartado anterior culmin con la revisin del TAD PILA, ahora otro de los tipos de datos abstractos que veremos es una COLA, similar a una lnea de espera. Los sistemas computacionales utilizan muchas colas internamente. Una cola ofrece un comportamiento bien definido a sus clientes: stos colocan elementos en una cola, uno a la vez, mediante una operacin conocida como Encolar, y luego recuperan esos elementos, uno a la vez, mediante una operacin conocida como retirar. Una cola devuelve los elementos en el orden primero en entrar, primero en salir (PEPS o FIFO). Conceptualmente, una cola puede volverse infinitamente larga, pero las colas reales son finitas. La cola debe ocultar una representacin interna de datos y llevar el registro de los elementos que esperan actualmente en la lnea, y ofrece operaciones a sus clientes (Encolar y retirar). A los clientes no les preocupa la implementacin de la COLA; simplemente dependen de que sta opere como se indic. Cuando un cliente encola un elemento, la cola debe aceptarlo y colocarlo en algn tipo de estructura de datos PEPS o FIFO interna. De manera similar, cuando el cliente desea el siguiente elemento de la parte frontal de la cola, sta debe remover el elemento de su representacin interna y entregarlo en orden PEPS o FIFO. Los clientes pueden realizar solamente las operaciones permitidas en la representacin de datos; el ADT rechaza las operaciones que su interfaz pblica no proporciona.
2
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Clases autorreferenciadas
Una clase autorreferenciada contiene una variable de instancia que hace referencia a otro objeto del mismo tipo de clase. Por ejemplo, la declaracin:

declara la clase Nodo, la cual tiene dos variables de instancia private: la variable String Elemento y la referencia Nodo llamada siguienteElemento. El campo siguienteNodo hace referencia a un objeto de la clase Nodo, un objeto de la misma clase que se est declarando aqu; es por ello que se utiliza el trmino clase autorreferenciada. El campo siguienteElemento es un enlace; vincula a un objeto de tipo Nodo con otro objeto del mismo tipo.

Los programas pueden enlazar objetos autorreferenciados entre s para formar estructuras de datos tiles como listas, colas, pilas e incluso rboles. La siguiente es una representacin grfica de una autoreferenciacin.

3
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Java y Asignacin dinmica de memoria


Para crear y mantener estructuras dinmicas de datos se requiere la asignacin dinmica de memoria; la habilidad para que un programa obtenga ms espacio de memoria en tiempo de ejecucin, para almacenar nuevos nodos y para liberar el espacio que ya no se necesita. Recuerde que los programas de Java no liberan explcitamente la memoria asignada en forma dinmica. En vez de ello, Java realiza la recoleccin automtica de basura en los objetos que ya no son referenciados en un programa.

4
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Implementacin

5
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Implementacin
.

6
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

TAD COLA, Algunas aplicaciones


Las colas tienen muchas aplicaciones en los sistemas computacionales: Una cola es similar a la fi la para pagar en un supermercado: el cajero atiende primero a la persona que se encuentra hasta adelante. Los dems clientes entran a la fila slo por su parte final y esperan a que se les atienda. La mayora de las computadoras tienen slo un procesador, por lo que slo pueden atender a una aplicacin a la vez. Cada aplicacin que requiere tiempo del procesador se coloca en una cola. La aplicacin al frente de la cola es la siguiente que recibe atencin. Cada aplicacin avanza gradualmente al frente de la cola, a medida que las aplicaciones al frente reciben atencin. Las colas tambin se utilizan para dar soporte al uso de la cola de impresin. Por ejemplo, una sola impresora puede compartirse entre todos los usuarios de la red. Muchos usuarios pueden enviar trabajos a la impresora, incluso cuando sta ya se encuentre ocupada. Estos trabajos de impresin se colocan en una cola hasta que la impresora est disponible. Un programa conocido como spooler administra la cola para asegurarse que, a medida que se complete cada trabajo de impresin, se enve el siguiente trabajo a la impresora. En las redes computacionales, los paquetes de informacin tambin esperan en colas. Cada vez que un paquete llega a un nodo de la red, debe enrutarse hacia el siguiente nodo en la red a travs de la ruta hacia el destino final del paquete. El nodo enrutador enva un paquete a la vez, por lo que los paquetes adicionales se ponen en una cola hasta que el enrutador pueda enviarlos. Un servidor de archivos en una red computacional se encarga de las peticiones de acceso a los archivos de muchos clientes distribuidos en la red. Los servidores tienen una capacidad limitada para dar servicio a las peticiones de los clientes. Cuando se excede esa capacidad, las peticiones de los clientes esperan en colas.
7
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

A modo de resumen, recordando Pilas y Colas


Las pilas son importantes en los compiladores y sistemas operativos; pueden insertarse y eliminarse elementos slo en un extremo de una pila: su parte superior. Las colas representan lneas de espera; se insertan elementos en la parte final (conocida como cola) de una cola y se eliminan elementos de su parte inicial (conocida como cabeza).

8
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Vous aimerez peut-être aussi