Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2023/2024

Ejemplo de error en el ejercicio 2.h del tema 2

La siguiente solución contiene un error. Piensa cuál es.

void Cola::eliminar(int dato) {
   eliminar(dato, primero, nullptr);
}

void Cola::eliminar(int dato, Nodo * actual, Nodo * anterior) {
   if (actual == nullptr)
      return;
   if (actual->dato == dato) {
      anterior->siguiente = actual->siguiente;
      if (actual == ultimo)
	 ultimo = anterior;
      delete actual;
   } else
      eliminar(dato, actual->siguiente, actual);
}
      

¿Por qué es incorrecta?

Falta tratar el caso en que el nodo a eliminar es el primero.