Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2022/2023

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.

Error 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);

}
	

Solución

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

Error 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);

}
	

Solución

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

Error 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);

}
	

Solución

Falta un return para propagar el resultado.