Source: vga.queue.js

/**
                * 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