Temas:
| Ejemplo | Significado | Declaración |
|---|---|---|
| StringQueue q= new StringQueue(); | Construye una cola de strings vacía | StringQueue() |
| q.put("hola"); | Agrega el string "hola" al final | void put(String s) |
| String s= q.getString() | extrae y entrega el primer elemento de la cola | String getString() |
| int l= q.size() | entrega la cantidad de elementos de la cola | int size() |
Se puede usar un arreglo para almacenar los elementos de la cola, pero se presentan las mismas deficiencias de la pila implementada con arreglos.
La estructura de datos más conveniente para implementar una cola es la lista enlazada, al igual que la pila. La siguiente figura muestra la estructura de una cola en la que se han encolado los strings "hola", "que" y "tal":

La estructura de los eslabones queda representada por medio de la siguiente clase:
Y la estructura de una cola consiste en una referencia del primer
eslabón de la cola:
class EslabonCola {
String s;
EslabonCola prox;
Eslabon(String s, EslabonCola prox) {
this.s= s;
this.prox= prox;
}
}
La variable de instancia primero referencia el eslabón que contiene
el primer string de la cola.
class StringQueue extends Program {
EslabonCola primero;
... // Los métodos getString, put y size
}
La siguiente figura muestra la modificación que se hace en los
enlaces para sacar el primer eslabón de la cadena:
String getString() {
String s= primero.s;
primero= primero.prox;
return s;
}
Observe que si la cola tenía exactamente un eslabón, después de extraerlo de la cola, la lista enlazada queda sin eslabones.

int size() {
int cont= 0;
EslabonCola e= primero;
while (primero!=null) {
e= e.prox;
cont= cont+1;
}
return cont;
}
Observe que el caso en que la cola está vacía es un caso de borde, porque
en ese caso el eslabón debe ser referenciado por la variable de
instancia primero. La figura muestra las modificaciones realizadas
en las referencias:
void put(String s) {
if (primero==null)
primero= new EslabonCola(s, null);
else {
EslabonCola e= primero;
while (e.prox!=null)
e= e.prox;
e.prox= new EslabonCola(s, null);
}
}

Análisis del tiempo de ejecución de cada operación: