Sei sulla pagina 1di 3

Colas en Java

Los elementos de la cola se aaden y se eliminan de tal manera que el


primero en entrar es el primero en salir. La adicin de elementos se realiza
a travs de una operacin llamada encolar (enqueue), mientras que la
eliminacin se denomina desencolar (dequeue). La operacin de encolar
inserta elementos por un extremo de la cola, mientras que la de
desencolar los elimina por el otro.

El siguiente interfaz muestras las operaciones tpicas para colas:

Cola.java

La siguiente es una posible implementacin de colas mediante la


clase Nodo:

ColaEnlazada.java
Vemos como la clase Cola contiene dos campos, cola y cabecera que
apuntan al principio y al final de la cola. La cabecera la utilizaremos para
extraer elementos. Para insertar utilizaremos la cola.

La operacin encolar crea un nodo cuyo sucesor es nulo. Esto es porque


aadimos al final de la cola, es decir, donde apunta el campo cola. Si la
cola es vaca la cabecera y la cola apuntan al mismo objeto Nodo.

Pila
Una pila (stack en ingls) es una lista ordenada o estructura de datos que permite
almacenar y recuperar datos, el modo de acceso a sus elementos es de
tipo LIFO (del ingls Last In, First Out, ltimo en entrar, primero en salir) . Esta
estructura se aplica en multitud de supuestos en el rea de informtica debido a su
simplicidad y capacidad de dar respuesta a numerosos procesos.
Para el manejo de los datos cuenta con dos operaciones bsicas: apilar (push), que
coloca un objeto en la pila, y su operacin inversa, retirar(o desapilar, pop), que
retira el ltimo elemento apilado.
En cada momento slo se tiene acceso a la parte superior de la pila, es decir, al
ltimo objeto apilado (denominado TOS, Top of Stack en ingls). La
operacin retirar permite la obtencin de este elemento, que es retirado de la pila
permitiendo el acceso al anterior (apilado con anterioridad), que pasa a ser el ltimo,
el nuevo TOS.
Las pilas suelen emplearse en los siguientes contextos:
Evaluacin de expresiones en notacin postfija (notacin polaca inversa).
Reconocedores sintcticos de lenguajes independientes del contexto
Implementacin de recursividad.
En un sistema operativo cada proceso tiene un espacio de memoria (pila) para
almacenar valores y llamadas a funciones.
Una pila acotada es una pila limitada a un tamao mximo impuesto en su
especificacin.
Por analoga con objetos cotidianos, una operacin apilar equivaldra a colocar un
plato sobre una pila de platos, y una operacin retirarequivaldra a retirarlo.
Map en Java
La Interface Map (java.io.Map) en Java, nos permite representar una estructura de
datos para almacenar pares "clave/valor"; de tal manera que para una clave
solamente tenemos un valor. Esta estructura de datos tambin es conocida en otros
lenguajes de programacin como "Diccionarios", aunque en cada lenguajes esta
estructura de datos tiene sus matices. Al igual que dijimos en la entrada de
"ArrayList en Java, con ejemplos" los Maps en java tienen implimentada por debajo
toda la teora de las estructuras de datos de los Arboles (AVL, B, B+, B*) por
tanto permiten aadir, eliminar y modificar elementos de forma trasparente para el
programador.

Potrebbero piacerti anche