102 lines
2.4 KiB
Java
102 lines
2.4 KiB
Java
|
package cl.cromer.estructuras;
|
||
|
|
||
|
/**
|
||
|
* Crear una estructura de dato de tipo cola.
|
||
|
* @author Chris Cromer
|
||
|
*/
|
||
|
public class Cola {
|
||
|
/**
|
||
|
* La cola.
|
||
|
*/
|
||
|
private String cola[];
|
||
|
|
||
|
/**
|
||
|
* La cantidad de elementos que están en la cola.
|
||
|
*/
|
||
|
private int size;
|
||
|
|
||
|
/**
|
||
|
* Inicializar.
|
||
|
*/
|
||
|
public Cola() {
|
||
|
this.cola = null;
|
||
|
size = 0;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Devolver la cantidad de elementos que están en la cola.
|
||
|
* @return int: La cantidad de elementos.
|
||
|
*/
|
||
|
public int size() {
|
||
|
return size;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Push un valor en la cola encima.
|
||
|
* @param valor int: El valor a push.
|
||
|
*/
|
||
|
public void push(int valor) {
|
||
|
if (this.cola != null) {
|
||
|
String cola[] = new String[this.cola.length + 1];
|
||
|
int i;
|
||
|
for (i = 0; i < this.cola.length; i++) {
|
||
|
cola[i] = this.cola[i];
|
||
|
}
|
||
|
cola[i] = String.valueOf(valor);
|
||
|
this.cola = cola;
|
||
|
size++;
|
||
|
}
|
||
|
else {
|
||
|
String pila[] = new String[1];
|
||
|
pila[0] = String.valueOf(valor);
|
||
|
this.cola = pila;
|
||
|
size++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Pop un valor del principio de la cola.
|
||
|
* @return boolean: Verdad si fue exitoso.
|
||
|
*/
|
||
|
public boolean pop() {
|
||
|
if (this.cola != null) {
|
||
|
String cola[] = new String[this.cola.length -1];
|
||
|
// Nueva array sin el valor del primer
|
||
|
System.arraycopy(this.cola, 1, cola, 0, cola.length);
|
||
|
this.cola = cola;
|
||
|
size--;
|
||
|
return true;
|
||
|
}
|
||
|
else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Peek al valor que está al principio de la cola.
|
||
|
* @return int: El valor que está al principio de la cola.
|
||
|
*/
|
||
|
public int peek() {
|
||
|
if (this.cola != null && size() > 0) {
|
||
|
return Integer.valueOf(cola[0]);
|
||
|
}
|
||
|
else {
|
||
|
return Integer.MIN_VALUE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Devolver el valor que está en un indice de la cola.
|
||
|
* @param indice int: El indice que desea devolver.
|
||
|
* @return String: El valor que está guardado en el indice.
|
||
|
*/
|
||
|
public String getIndice(int indice) {
|
||
|
if (indice >= 0 && indice < cola.length) {
|
||
|
return cola[indice];
|
||
|
}
|
||
|
else {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
}
|