Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2023/2024

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

Esto son ejemplos de errores cometidos por estudiantes. Piensa qué es lo que está mal.

Ejemplo de solución incorrecta 1

bool Cola::buscar(int dato) const {

  return buscar(dato, primero);

}

bool Cola::buscar(int dato, Nodo * n) const {

  if (n->dato == dato)
    return true;
  
  if (n == nullptr)
    return false;

  return buscar(dato, n->siguiente);

}
	

¿Por qué es incorrecta?

No se puede acceder a n->dato si n vale nullptr !!!!!

Ejemplo de solución incorrecta 2

bool Cola::buscar(int dato) const {

  return buscar(dato, primero);

}

bool Cola::buscar(int dato, Nodo * n) const {

  if (n->dato == dato)
    return true;
  
  if (n->siguiente == nullptr)
    return false;

  return buscar(dato, n->siguiente);

}
	

¿Por qué es incorrecta?

Si la cola está vacía, primero vale nullptr y falla al acceder a n->dato.

Ejemplo de solución incorrecta 3

bool Cola::buscar(int dato) const {

  return buscar(dato, primero);

}

bool Cola::buscar(int dato, Nodo * n) const {

  if (n == nullptr)
    return false;

  if (n->dato == dato)
    return true;
  
  buscar(dato, n->siguiente);

}
	

¿Por qué es incorrecta?

Falta un return para propagar el resultado.