Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2023/2024

Ejemplos de errores en el ejercicio 2.f del tema 2

Esto son ejemplos de errores cometidos por estudiantes. Piensa en qué casos pueden fallar.

Ejemplo de solución incorrecta 1

bool Cola::colasIguales(const Cola & otraCola) const {

  return colasIguales(primero, otraCola.primero);

}

bool Cola::colasIguales(Nodo * n1, Nodo * n2) const {

  if (n1->dato == n2->dato)
     return true;

  return colasIguales(n1->siguiente, n2->siguiente);

}
	

¿Por qué es incorrecta?

¿Esto cuándo devuelve false?

Ejemplo de solución incorrecta 2

bool Cola::colasIguales(const Cola & otraCola) const {

  return colasIguales(primero, otraCola.primero);

}

bool Cola::colasIguales(Nodo * n1, Nodo * n2) const {

  if (n1 == nullptr && n2 == nullptr)
     return true;

  else if (n1->dato != n2->dato || n1 == nullptr || n2 == nullptr)
     return false;

  return colasIguales(n1->siguiente, n2->siguiente);

}
	

¿Por qué es incorrecta?

No podemos comprobar si n1->dato != n2->dato si n1 vale nullptr o n2 vale nullptr.