Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2022/2023

Solución del ejercicio 2.g del tema 2

La siguiente solución tiene coste temporal en el peor caso O(n) y en el mejor caso O(1), siendo n la talla de la cola.

void Cola::eliminar(int dato) {

   Nodo * anterior = nullptr;
   for (Nodo * actual = primero; actual != nullptr; actual = actual->siguiente) {
      if (actual->dato == dato) {
	 if (actual == ultimo)
	    ultimo = anterior;
	 if (actual == primero)
	    primero = primero->siguiente;
	 else
	    anterior->siguiente = actual->siguiente;
	 delete actual;
	 return;
      }
      anterior = actual;
   }

}