/**
* Clase que representa una cola
*/
class Queue {
/**
* Crea una nueva cola
* @param {array} elementos Array de elementos de la cola
* @param {number} cabeza Indice de la cabeza de la cola
* @param {number} cola Indice del final de la cola
* @constructor
*/
constructor(){
this.elementos = new Array();
this.cabeza = 0;
this.cola = 0;
}
/**
* Inserta un elemento en la cola
* @param {number} elemento Elemento a insertar
*/
insertar(elemento) {
this.elementos[this.cola] = elemento;
this.cola++;
console.log("elementos: " + this.elementos);
}
/**
* Extrae un elemento de la cabeza de la cola
* @returns elemento extraido
*/
extraer() {
const item = this.elementos[this.cabeza];
delete this.elementos[this.cabeza];
this.cabeza++;
return item;
}
/**
* Lee el primer elemento de la cola
* @returns elemento de la cabeza de la cola
*/
obtenerCabeza() {
return this.elementos[this.cabeza];
}
/**
* Devuelve la longitud de la cola
* @returns número de elementos de la cola
*/
longitud() {
return this.cola - this.cabeza;
}
/**
* Devuelve si está vacía la cola
* @returns si la longitud de la cola es igual a 0
*/
estaVacio() {
return this.longitud() == 0;
}
/**
* Devuelve el contenido de la cola
* @returns los elementos de la cola
*/
imprimirCola() {
var colaImprimir = new Array();
for (var i = 0; i