7

El error en los métodos de eliminación de elementos.

Compañeros quiero hacer un pequeño aporte sobre los métodos de eliminación como he visto en muchas de las soluciones que aplicamos dejamos un this.lenght - -; por fuera de las validaciones que realicemos con if, tal y como se muestra en el código:

Ejemplo en un Queue

dequeue() {
    if(this.length === 0) {
      console.error('El Queue está vacío, no hay elementos para eliminar');
    } elseif(this.length === 1) {
      const deleteNode = this.first;
      this.first = deleteNode.next;
    } else {
      const deleteNode = this.first;
      this.first = deleteNode.next;
      this.last = null;
    }
    this.length--;
    returnthis;
  }

Sin embargo aquí estamos cometiendo un error dado que al momento de aplicar el método cuando la estructura no tenga ningún elemento ósea cuando su this.lenght sea igual a 0, el método va restar una unidad a ese this.lenght que ahora va ser -1, si esto sucede y en un futuro queremos agregar un nuevo elemento a esta estructura, cuando lo hagamos su this.lenght que debería ser 1 no lo va ser, va ser 0 y esto es un error, la forma en que deberíamos dejar el código en mi opinión es con un this.lenght - -; dentro de cada if excepto en el que tiene la validación de this.lenght ===0, de la siguiente manera:

dequeue() {
    if(this.length === 0) {
      console.error('El Queue está vacío, no hay elementos para eliminar');
    } elseif(this.length === 1) {
      const deleteNode = this.first;
      this.first = deleteNode.next;
      this.length--;
    } else {
      const deleteNode = this.first;
      this.first = deleteNode.next;
      this.last = null;
      this.length--;
    }
    return this;
  }

Espero les sea util compañeros, #NuncaParesDeAprender

Escribe tu comentario
+ 2
0
6240Puntos

Toda la razón Kike, muchas gracias!!!