Curso 2023/2024
La siguiente solución contiene varios errores. Piensa cuáles son.
void Cola::eliminar(int dato) { if (primero == nullptr) return; if (primero->dato == dato) { Nodo * basura = primero; primero = primero -> siguiente; delete basura; return; } for (Nodo * actual = primero; actual != nullptr; actual = actual->siguiente) if (actual->siguiente->dato == dato) { Nodo * basura = actual->siguiente; actual->siguiente = actual->siguiente->siguiente; delete basura; return; } }
Si había varios datos y se elimina el último, falta actualizar ultimo
.
Si el dato que se elimina es el primero y no había más, falta
dejar nullptr
en ultimo
.
Si el dato que nos piden eliminar no está en la cola, cuando el bucle
llegue al último nodo fallará el acceso
a actual->siguiente->dato
.